has_many の意見が含まれる has_many の製品を扱うストアを考えてみましょう。モデルは次のとおりです。
店:
class Store < ActiveRecord::Base
attr_accessible :desc, :location, :name, :phone, :status, :url
has_many :products
has_many :opinions, :through => :products
end
製品:
class Product < ActiveRecord::Base
attr_accessible :desc, :name, :status, :url
belongs_to :store
has_many :opinions
end
最後に、意見:
class Opinion < ActiveRecord::Base
attr_accessible :content, :eval, :status
belongs_to :store
belongs_to :product
end
(製品とストアに属する) 新しい意見を作成するには、 OpinionsController の create メソッドを次に示します。
def create
# Get product info.
product = Product.find_by_id params[:opinion][:product_id]
# Create a new opinion to this product
opinion = product.opinions.build params[:opinion]
opinion.status = 'ON'
if opinion.save
redirect_to :back, :notice => 'success'
else
redirect_to :back, :alert => 'failure'
end
end
しかし、結果のエラーは次のとおりです。Can't mass-assign protected attributes: product_id
質問: product_id をコントローラーに渡すにはどうすればよいですか?
さらに情報が必要な場合は教えてください。
前もって感謝します。