一部の製品 (カテゴリにリンク) を含む grouped_collection_select があります。
<%= c.grouped_collection_select :product_id, @categories, :products, :name, :id, :name, :include_blank => true %>
しかし、ブール値が「true」の製品がいくつか欲しいのですが、これを指定することは可能ですか?
ありがとう
一部の製品 (カテゴリにリンク) を含む grouped_collection_select があります。
<%= c.grouped_collection_select :product_id, @categories, :products, :name, :id, :name, :include_blank => true %>
しかし、ブール値が「true」の製品がいくつか欲しいのですが、これを指定することは可能ですか?
ありがとう
基本的に、グループ化された選択で各親オブジェクトのインスタンスのメソッドを呼び出しています。したがって、必要な製品に対応する親オブジェクト (カテゴリ) のインスタンス メソッドがある場合は、ヘルパーでそれを呼び出すことができます。このようなもの:
Class Category
has_and_belongs_to_many :products
def target_products
#return a collection here that corresponds to what you're looking for based on
#your criteria in the associated product(s) object. For example:
self.products.active #where active is a named scope in Product for what you're looking for.
#You could also add an AR macro method with a condition etc. Basically any thing that
#will respond to category.target_products in the end.
end
end
次に、grouped_collection_select でこのメソッドを使用します。
<%= c.grouped_collection_select :product_id, @categories, :target_products, :name, :id, :name, :include_blank => true %>