我认为这是一个非常简单的问题,但我有一个包含用户、产品和评论模型的应用程序。
当用户为产品创建新评论时,我目前在我的评论创建操作中有这个:
@review = @product.reviews.new(params[:review])
这很好用,但评论仅与产品相关联,我还想将其与创建用户相关联。但是,如果我这样做:
@review = @product.reviews.new(params[:review])
@review = current_user.reviews.new(params[:review])
它会创建两个单独记录的评论实例吗?我怎么能用一个 @review 变量来做这样的多个关联呢?
请注意,我没有使用多态关联,因为据我了解,我不需要允许 @review 属于产品或用户,因为我总是想将它与两者关联。
因此,在我的 Review 模型中,我有:
t.integer :product_id
t.integer :user_id
我的模型看起来像这样:
产品:
has_many :reviews
用户:
has_many :reviews
审查:
belongs_to :user
belongs_to :product
首先,这个设置是否正确?我不使用多态关联是对的吗?如果是这样,我怎样才能编写我的控制器代码来做我想做的事?