【发布时间】:2013-05-25 09:18:02
【问题描述】:
我认为这是一个非常简单的问题,但我有一个包含 User、Product 和 Review 模型的应用。
当用户为产品创建新评论时,我目前在我的评论创建操作中有这个:
@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
首先,这个设置是否正确?我不使用多态关联是对的吗?如果是这样,我怎样才能编写我的控制器代码来做我想做的事?
【问题讨论】:
标签: ruby-on-rails