実際の例を考えてみましょう: クライアントによって書かれた、多くのレビューがある製品です。レビューを通じて、製品とクライアントの間に多対多の関係があります。
class Product < ActiveRecord::Base
has_many :reviews
has_many :clients, :through => :reviews
end
class Client < ActiveRecord::Base
has_many :reviews
has_many :products, :through => :reviews
end
class Reviews < ActiveRecord::Base
belongs_to :product
belongs_to :client
end
ここでは、 を使用しhas_many :through
て多対多の関係を作成しています。これは、レビューテーブルにスコア、コンテンツ、いいね! などの追加の属性が必要なためです。
ユーザーは私のアプリにログインするので、次の方法でデータを取得できます。
client = Client.find_by_id current_user.id
彼は製品ページにアクセスするので、製品データを取得できます。
product = Product.find_by_id params[:id]
製品のクライアント レビューを作成するにはどうすればよいですか?
私は試した:
review = Review.create :client => client, :product => product, :comment => params[:review][:comment]
MassAssignSecurity : can't mass-assign protected attributes: product, client
何か案が?前もって感謝します。