0
我有一个Foo
对象的集合。我想要创建一个迭代该集合的类方法,并且如果该集合中的所有对象都具有某个属性的特定值,则返回true
。否则,类方法返回false
。Rails:遍历模型类方法中的集合
我尝试以下,但它不工作:
class Foo < ActiveRecord::Base
def self.all_have_number_value_999?
each do |foo_object|
return false if foo_object.number_val != 999
end
return true #all objects have #number_val == 999
end
end
现在假设我Foo
对象的集合莫名其妙。我将补充如何获得Foo对象的集合,但重要的是number_value_999?
可以迭代该集合。换句话说:某些未知范围事先产生了对象集合Foo
。我只是想遍历内一个Foo
类方法。
Foo.where(id: [123, 456]).all_have_number_value_999?
它在类方法中抱怨,因为它不知道如何遍历集合。所以这是我的问题:我如何迭代模型类方法中的集合?
谢谢您的回答。请参阅上面我更新的问题。我试图更具描述性。你在这里有一个很好的答案,但希望更清楚我现在的问题是我添加了更多细节。 – Neil
你的意思是像我最近的更新? –