我在Rails中有一个表,我想查找某个表的所有记录,其中某个函数返回true。
最好的方法是什么?我当然可以迭代表中的所有记录,并使用条件语句来测试给定单个记录的函数是否返回true并将其添加到列表中。
是否有更简单的方法可以按照Model.find(:all,:conditions => {...})的方式执行此操作?
由于
答案 0 :(得分:1)
Class MyModel < ActiveRecord
def self.targetted
find_each.select(&:predicate_method?)
end
def predicate_method?
#something that returns either true or false
end
end
这是Rails惯用的一点:
答案 1 :(得分:0)
def record_that_returns_true_for_xfunction
Model.all.select {|record| xfunction(record.some_column) == true}
end
这似乎就是你要找的东西。此方法将返回xfunction(record.some_column) == true
。