Rails 3:获取“未定义的方法‘average_ rating’”对于 nil:NilClass”
我放入
def average_rating
@value = 0
self.ratings.each do |rating|
@value = @value + rating.value
end
@total = self.ratings.size
@value.to_f / @total.to_f
end
“msg.rb”并放入
<div id="avg_rating">
<%= @msg.average_rating %>
</div>
视图 home/_msgs_list.html.erb
我不完全理解 defaverage_ rating 方法的工作原理(我从 这里),所以我得到 nil:nilclass 的 nomethoderror。有人可以帮忙吗?谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的问题(不一定)不在于
average_ rating
。这是@msg
根本没有定义!确保您的视图控制器正确定义您的
@msg
。如果您遇到
@msg
可能存在或可能不存在的情况(这应该会发生),您可以通过执行以下操作来避免错误:或简单的
if
声明:Your problem isn't (necessarily) with
average_rating
. It's that@msg
isn't defined at all!Make sure the controller for your view is defining your
@msg
properly.If you have a situation where the
@msg
might or might not exist (and this is supposed to happen), you can avoid the error by doing something like:or a simple
if
statement: