私はこれらのモデルを持っています:
class Category < ActiveRecord::Base
has_many :product_categories, :dependent => :destroy
has_many :product, :through => :product_categories
end
class Product < ActiveRecord::Base
has_many :product_categories, :dependent => :destroy
has_many :categories, :through => :product_categories
end
class ProductCategory < ActiveRecord::Base
belongs_to :category
belongs_to :product
end
景色:
- Category.order('title').each do |category|
= check_box_tag :product_categories_ids, category.id, @product.product_categories.include?(category), :name => 'product[product_categories_ids][]'
= label_tag :product_categories_ids, category.title
そして私が印刷するとき@product.product_categories
:
= @product.product_categories.inspect
出力は次のとおりです。
[#<ProductCategory id: 5, product_id: 9, category_id: 9, created_at: "2013-10-29 01:06:54", updated_at: "2013-10-29 01:06:54">, #<ProductCategory id: 6, product_id: 9, category_id: 7, created_at: "2013-10-29 01:06:54", updated_at: "2013-10-29 01:06:54">]
それが、ここでそれぞれのチェックボックスがチェックされていない理由だと思います。
= check_box_tag :product_categories_ids, category.id, @product.product_categories.include?(category), :name => 'product[product_categories_ids][]'
すべてのチェックボックスをチェックする必要があるかどうかをチェックするこの部分を更新する方法:
@product.product_categories.include?(category)
?
ありがとうございました