2016-01-11 57 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