【发布时间】:2014-08-21 06:40:13
【问题描述】:
我在我的 Rails 应用程序 (4.1.2) 中使用 payments.sum(&:price)。
由于我从 Ruby 1.9.3 更新到 2.1.2,我收到以下错误:
wrong number of arguments (1 for 2..3)
这些变体有效:
payments.map(&:price).sum
payments.to_a.sum(&:price)
我必须重写我的代码还是我错过了什么? 谢谢!
【问题讨论】:
-
什么是
payments? Rails 有两种不同的sum方法:Enumerable#sum 和ActiveRecord::Relation#sum。第一个占用一个块(这就是&,to_proc运算符起作用的原因);第二个没有。无论如何,我很确定将 Ruby 从 1.9.3 升级到 2.1 是一个红鲱鱼。&行为在这些版本之间没有改变。
标签: ruby ruby-on-rails-4 sum