products
はActiveRecord::Relation
です。Rails 3: "ActiveRecord :: Relation"の項目をフィルタリングする方法は?
filtered_products.order(...)
しかしfiltered_products
ではないので、私はこれを行うことはできません。
def my_filter(products)
last_brand_id = last_model_id = nil
filtered_products = []
products.each do |product|
filtered_products << product if (product.model.brand_id != last_brand_id) || (product.model_id != last_model_id)
last_brand_id = product.model.brand_id
last_model_id = product.model_id
end
filtered_products
end
は、今私がフィルタリング製品を注文したい
filtered_products = my_filter(products)
:Iこのようないくつかの製品をフィルタリングActiveRecord::Relation
。
my_filter
を書き換えるにはどうすればActiveRecord::Relation
を返すべきですか。
または、より良い解決策がありますか?
これは、ifが何であるかによって異なります - これはデータベースからのみアクセス可能な条件であり、ルビコードからt? –
私は質問を更新しました。これで、if条件を見ることができます。 –