嵌套形式:不允许的参数

Nested Form: unpermitted parameter

所以我是 Rails 的新手,我一直在尝试构建一个嵌套表单。我一直遇到很多麻烦,似乎无法让它工作。我在 youtube 上观看了多个视频,但我似乎无法找到我在做什么不同。为了我尝试构建一个产品,我有一个产品有很多买家,但买家只属于一个产品。 (假设您只能购买一种产品...)。当我提交我的表单时,我收到一个错误,我可以在服务器日志中看到:"Unpermitted parameter: buyer" 我觉得我已经尝试了一切..如果有人我会很高兴也许可以告诉我发生了什么事。非常感谢

我已遵循 Rails 指南并将以下内容添加到我的模型中:

class Product < ActiveRecord::Base
  has_many :orders
  has_many :buyers
  accepts_nested_attributes_for :buyers          
end


class Buyer < ActiveRecord::Base
 belongs_to :product                        
end

产品控制器中的强参数:

  def product_params
   params.require(:product).permit(:name, :description, :image_url, :color, :adult, buyers_attributes: [:name, :age, :product_id])
  end

产品控制器:

 def new
@product = Product.new
@product.buyers.build     end 

然后对于表格: Form (抱歉,在此处插入代码时遇到重大问题)

最后这是我对两个表的架构:

  create_table "buyers", force: :cascade do |t|

t.string   "name"

t.integer  "age"

t.datetime "created_at", null: false

t.datetime "updated_at", null: false

t.integer  "product_id"   end

`</p>

<p>create_table "products", force: :cascade do |t|</p>

t.string   "name"

t.text     "description"

t.string   "image_url"

t.string   "color"

t.datetime "created_at",  null: false

t.datetime "updated_at",  null: false

t.integer  "price"

t.binary   "adult"        
 end

您的产品接受 buyers 的嵌套属性,但您只是向表单添加买家(非复数)属性。您可能需要将嵌套形式更改为

<%= f.fields_for :buyers, [@product.buyers.build] do |x| %>