2016-01-11 41 views
1

所以我是新来的Rails,我一直在试图建立一个嵌套的形式。我一直有很多麻烦,似乎无法让它工作..我在YouTube上看过多个视频,但我似乎无法找到我所做的不同。为了我试图建立一个,我有一个产品有很多买家,但一个买家只属于一个产品。 (假设你只能购买一种产品...)。当我提交我的形式我得到一个错误,我可以在服务器日志中看到:“不允许的参数:买家”我觉得我已经尝试了一切。我会是这么高兴,如果有人也许可以告诉我怎么回事。非常感谢嵌套的形式:未经许可的参数

我按照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 

强PARAMS在产品控制器:

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 

`

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

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
+0

我认为你需要的buyers_attributes阵列 – margo

+0

我已经尝试过的ID与两个:PRODUCT_ID和:ID :( –

回答

1

您的产品acceptes嵌套属性为buyers,但你只需要添加买方(无复数)属性的形式。你可能需要嵌套形式改变为

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

啊,终于...我试过之前但我想别的东西是错误的,在这一点上...现在它的作品。谢谢你这么多,非常感谢您的时间 –

+0

没有问题,允许 –

+0

他似乎已经忘记了你的时候,请接受答案,具有从+1我 – Tim