私のアプリでは、製品には多くのクライアントによって書かれたたくさんの意見があります。関連付けのあるモデルは次のとおりです。
class Product < ActiveRecord::Base
attr_accessible :name, :desc, :price
has_many :opinions
end
class Client < ActiveRecord::Base
attr_accessible :name, :bio
has_many :opinions
end
class Opinion < ActiveRecord::Base
attr_accessible :rate, :comment
belongs_to :client, :product
end
パラメーターには、評価の招待 ID があります。これは、product_id と client_id の両方を取得するのに役立ちます (両方を持っていると考えてください)。
フォームにはレート (radio_button、1 から 5) とコメント (text_field) のみが含まれます。
2 つのモデル (クライアントと製品) に属する新しい意見は、opinion#create メソッドによってどのように作成されるのでしょうか?
client_id と product_id を直接渡そうとしましたが、MassAssignment エラーが発生しました:
# Remember: I have product_id and client_id
product = Product.find_by_id product_id
opinion = product.opinions.build params[:opinion]
opinion.product_id = product_id
opinion.client_id = client_id
opinion.save
opinion.client_id = client_id
念のため、アプリの最初のバージョンでは、意見は製品にのみ属し、上記のコード (行を削除)を使用してうまく機能するため、以前product
は意見を作成していました)。したがって、これは単なる拡張です。
何か案が?前もって感謝します。