为什么在rails 3.1范围中使用sum会导致错误?

时间:2011-09-09 18:55:46

标签: ruby-on-rails ruby-on-rails-3.1

我有这个范围:

scope :total_quantity, sum('quantity')

当我跑步时:

MyModel.total_quantity

我收到此错误:

NoMethodError: undefined method `default_scoped?' for 4:Fixnum

直接运行sum方法

MyModel.sum('quantity') # 4

我在default_scoped上找不到任何文档?方法,或者为什么在这里调用它。你知道有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:12)

只需尝试方法而不是范围。它的功能就像魅力我也遇到了同样的问题,但是当我将范围改为方法时,它的工作正常。下面是工作和测试代码:)

def self.total_quantity
 sum('quantity')
end

让我知道它是否有效! 谢谢

答案 1 :(得分:-1)

这对我有用

def self.total_quantity
 sum('quantity')
end

但是如果我使用范围而不是方法,我没有理由出错。