0

私はこれらのモデルを持っています:

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)

?

ありがとうございました

4

1 に答える 1

0

エラーは次の行にあります。

 = check_box_tag :product_categories_ids, category.id, @product.product_categories.include?(category), :name => 'product[product_categories_ids][]'

私が正しく理解していれば、製品カテゴリ配列に特定のカテゴリが含まれているかどうかを確認する必要があります。だったら変えるべき

`@product.product_categories.include?(category)` 

`@product.categories.include?(category)`
于 2013-10-29T02:04:58.230 に答える