这个功能...
class Invoice < ActiveRecord::Base
def self.open_subtotal
sum{ |i| i.open_amount / (1.00 + i.tax_rate / 100.00) }
end
end
...在Rails 4.0.2中给我一个错误:
弃用警告:不建议使用带块的#sum调用,并将在Rails 4.1中将其删除。如果要对元素数组执行总和计算,请使用
to_a.sum(&block)
。
当我添加to_a
之前,sum
我得到一个undefined local variable or method to_a
错误。
写这个的正确方法是什么?
这将工作:
def self.open_subtotal
all.to_a.sum { |i| i.open_amount / (1.00 + i.tax_rate / 100.00) }
end
但是您可以用SQL对其求和(假设open_amount
和tax_rate
是invoices
表中的字段):
def self.open_subtotal
sum("open_amount / (1 + tax_rate / 100)")
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句