私は次のスキームを持っています:
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
そして更新アクション:
def update
@product = Product.find(params[:id])
#@product.attributes = {'product_categories_ids' => []}.merge(params[:product] || {})
respond_to do |format|
if @product.update_attributes(params[:product])
format.html { redirect_to '/home', notice: 'Your product was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @product.errors, status: :unprocessable_entity }
end
end
end
データを含むフォームを送信しようとすると、ブラウザーに次のエラーが表示されます。
unknown attribute: product_categories_ids
基本的に、更新アクションを更新する方法がわかりません-チェックボックスからデータを保存する方法...
いつもアドバイスありがとうございます!