これは非常に単純な質問だと思いますが、私は User、Product、および Review モデルを持つアプリを持っています。
ユーザーが製品の新しいレビューを作成するとき、私は現在、レビューの作成アクションにこれを持っています:
@review = @product.reviews.new(params[:review])
これは正常に機能しますが、レビューは製品のみに関連付けられており、作成ユーザーにも関連付けたいと考えています。ただし、次のようなことをすると:
@review = @product.reviews.new(params[:review])
@review = current_user.reviews.new(params[:review])
別個の記録であるレビューの 2 つのインスタンスを作成しますか? @review 変数を 1 つだけ使用して、このような複数の関連付けを行うにはどうすればよいですか?
私が理解しているように、@reviewを製品またはユーザーのいずれかに属することを許可する必要がないため、常に両方に関連付けたいので、多態的な関連付けを使用していないことに注意してください。
したがって、私の Review モデルには次のものがあります。
t.integer :product_id
t.integer :user_id
私のモデルは次のようになります。
製品:
has_many :reviews
ユーザー:
has_many :reviews
レビュー:
belongs_to :user
belongs_to :product
まず、この設定は正しいですか?ポリモーフィックな関連付けを使用しないのは正しいですか? もしそうなら、私がやりたいことをするためにコントローラーコードをどのように書くことができますか?