脚手架生成了所有整数的总和

时间:2015-02-12 17:05:44

标签: ruby ruby-on-rails-4 ruby-2.1.3

这让我疯狂了许多未声明的变量。我创建了一个带有文本和整数的简单脚手架。如何总结所有整数?见图:

enter image description here

我只想总结一下“瓦特”。我使用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

我做错了吗?

2 个答案:

答案 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错误。