我在 Rails 中有一个表,我想查找某个函数返回 true 的表的所有记录。
做这个的最好方式是什么?我当然可以遍历表中的所有记录并使用条件语句来测试给定单个记录的函数是否返回 true 并将其添加到列表中。
有没有更简单的方法可以按照 Model.find(:all, :conditions => {...}) 的方式来做这件事?
谢谢
我在 Rails 中有一个表,我想查找某个函数返回 true 的表的所有记录。
做这个的最好方式是什么?我当然可以遍历表中的所有记录并使用条件语句来测试给定单个记录的函数是否返回 true 并将其添加到列表中。
有没有更简单的方法可以按照 Model.find(:all, :conditions => {...}) 的方式来做这件事?
谢谢
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 惯用语:
def record_that_returns_true_for_xfunction
Model.all.select {|record| xfunction(record.some_column) == true}
end
这似乎是您正在寻找的东西。此方法将返回包含所有记录的数组xfunction(record.some_column) == true
。