我有这样的范围:
scope :not_undo, where(undo: false)
非常简单,我想这样做:
activities.not_undo.sum(:foo)
但发生错误:
NoMethodError: undefined method `call' for #<ActiveRecord::Relation []>
事实上,在我的单元测试开始时,&#34;活动&#34;是空的。但如果我这样做:
activities.where(undo: false).sum(:foo)
即使它是空的,也可以。
那么为什么要使用范围更改结果呢?我该怎么办?
THX。
答案 0 :(得分:2)
您需要将lambda作为第二个参数传递给scope
方法
scope :not_undo, -> { where(undo: false) }