ruby-on-rails - ruby-on-rails 创建具有多个belongs_to和attr_accessible的模型

标签 ruby-on-rails belongs-to

我的模型看起来像这样:

class User < ActiveRecord::Base
    attr_accessible: :name

    has_many :reviews   
end

class Product < ActiveRecord::Base
    attr_accessible: :name

    has_many :reviews   
end

class Review < ActiveRecord::Base
    attr_accessible: :comment

    belongs_to :user    
    belongs_to :product
    validates :user_id, :presence => true
    validates :product_id, :presence => true
end

鉴于 :user_id 和 :product_id 不可 attr_accessible,我试图找出创建新评论的最佳方法。通常,我只是通过关联 ( @user.reviews.create ) 创建评论来自动设置 :user_id,但在这种情况下,我不确定如何设置 Product_id。

我的理解是,如果我执行 @user.reviews.create(params),所有非 attr_accessible 参数将被忽略。

最佳答案

你可以这样做:

@user.reviews.create(params[:new_review])

...或类似的。您还可以使用嵌套属性:

class User < ActiveRecord::Base
  has_many :reviews
  accepts_nested_attributes_for :reviews
  ...

请参阅 http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html 上的“嵌套属性示例” .

关于ruby-on-rails - ruby-on-rails 创建具有多个belongs_to和attr_accessible的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8936847/

相关文章:

ruby-on-rails - rails - 如何设置模型新记录的 id 值有很多/属于关系?

ruby-on-rails-3 - 一个belongs_to 关联的未定义方法

javascript - 如何在 Sequelize 中更新外键 (belongsTo)

ruby-on-rails - 在 rails 中相交列表的最快方法?

ruby-on-rails - 在 Rails4.x 中渲染编辑表单时出现参数丢失或值为空错误

jquery - will_paginate 分页在 AJAX 刷新时呈现两次

ruby-on-rails - 使用 :belongs_to association 时未定义方法 'Match'

Grails:创建多对多的关系?

ruby-on-rails - API 调用抛出 SSL_connect 错误

sql - 为什么这个 Rails 命名范围返回空(未初始化?)对象?