【问题标题】:Rails - how to setup create action to make multiple associations?Rails - 如何设置创建动作以建立多个关联?
【发布时间】: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


    【解决方案1】:

    Rails Associations

    你可能想要这样的东西:

    @review = @product.reviews.new(params[:review])
    current_user.reviews << @review
    

    【讨论】:

    • 谢谢,这对我有用。我会阅读关联指南,但看起来我还可以。
    • 我很高兴它对你有用。该页面上有很多很好的信息供将来参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多