这让我疯狂了许多未声明的变量。我创建了一个带有文本和整数的简单脚手架。如何总结所有整数?见图:
我只想总结一下“瓦特”。我使用Rails 4; Ruby 2.1.3
我得到这个:undefined method 'all' for nil:NilClass
“当我将此代码放入我的app/models/bathroom_accessory.rb
时:
def total
@bathroom_accessory.all.sum(&:watts)
end
我做错了吗?
答案 0 :(得分:1)
您尝试引用实例变量而不是所有附件的集合:
def total
BathroomAccessory.all.sum(&:watts)
end
答案 1 :(得分:1)
另一种方法(没有全部):
def total
BathroomAccessory.sum(:watts)
end
为了解决这个问题,OP对于理解这个电话非常重要:
@bathroom_accessory.all.sum(&:watts)
不正确,因为sum是在类级别定义的,而@bathroom_accessory是声明为实例变量。即使这段代码也不正确:
def total
@bathroom_accessory = BathroomAccessory.new
@bathroom_accessory.sum(:watts)
end
最后一个代码会引发NoMethodError错误。