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
ます。