脚手架生成的所有整数之和

Scaffold generated Sum of all Integers

大量未声明的变量让我抓狂。我创建了一个带有文本和整数的简单脚手架。如何求和所有整数?见图:

我只想总结一下"Watts"。我正在使用 Rails 4; Ruby2.1.3

我得到这个:undefined method 'all' for nil:NilClass" 当我把这个代码放在我的 app/models/bathroom_accessory.rb:

def total
 @bathroom_accessory.all.sum(&:watts)
end

我是不是做错了什么?

您试图引用实例变量而不是所有附件的集合:

def total
  BathroomAccessory.all.sum(&:watts)
end

另一种方法(没有全部):

 def total
   BathroomAccessory.sum(:watts)
 end

为了这个问题,OP 理解这个调用很重要:

@bathroom_accessory.all.sum(&:watts)

是不正确的,因为 sum 是在 class 级别定义的,并且 @bathroom_accessory 被声明为实例变量。即使此代码不正确:

 def total
   @bathroom_accessory = BathroomAccessory.new
   @bathroom_accessory.sum(:watts)
 end

这最后一段代码将引发 NoMethodError 错误。