0

以下のコントローラーでコードを実行すると、Can't mass-assign protected attributes: product_id というエラーが表示され続けます。@product が存在することを確認しました。これを修正する方法について何かアドバイスはありますか?

コントローラ:

@product = Product.find(1)
a = Category.new(:category => 'Glasses', :product_id => @product.id)
a.save

class Product < ActiveRecord::Base
  attr_accessible :blog
  has_many :categories
end

class Category < ActiveRecord::Base
    attr_accessible :category
    belongs_to :product
end
4

3 に答える 3

2

書き込み

@product = Product.find(1)
@product.categories.create(:category => 'Glasses')

よりエレガントで、問題を解決するはずです。

于 2013-05-20T04:23:51.177 に答える
0

試す:

class Category < ActiveRecord::Base
    attr_accessible :category, :product
    belongs_to :product
end

それで:

@product = Product.find(1)
a = Category.new(:category => 'Glasses', :product => @product)
a.save
于 2013-05-20T01:38:43.070 に答える
-1

協会を通じて構築する

@product = Product.find(1)
a = @product.categories.new(:category => 'Glasses')
a.save

attr_accessible :category, :productあなたのカテゴリーモデルにないので

于 2013-05-20T01:38:57.260 に答える