2014-12-24 84 views
0

我的配方和成分模型,其具有相關聯地設定爲Ruby on Rails的4 - 形式不更新的附加字段

Recipe has_many :ingredients 
accepts_nested_attributes_for :ingredients, :reject_if => :all_blank, :allow_destroy => true 

Ingredient belongs_to :recipe 

和recipes_controller

def recipe_params 
    params.require(:recipe).permit(:title, :image, :serving, :prep, :cook, :steps, ingredients_attributes: [:id, :name, :_destroy]) 
end 

定義強參數和所提交的形式發送以下參數

Request 

Parameters: 

{"utf8"=>"✓", 
"_method"=>"patch", 
"authenticity_token"=>"zT+9YEIh6ZNxO3wrV8ajj8NyVaTfPDel171hasWk2DA=", 
"recipe"=>{"title"=>"Recipe with image", 
"serving"=>"3", 
"prep"=>"10 min ", 
"cook"=>"19 min"}, 
"ingredient"=>{"name"=>["Chicken", "Beef"]}, 
"commit"=>"Update Recipe", 
"id"=>"4"} 

問題在於附加成分Beef不會在數據庫中持久化。 我不知道我是否也必須傳入recipe_params中定義的ingredient_id哈希,或者我需要參數中的某種參考來與配方關聯。

這個額外的字段是用腳本生成的,我不認爲這個值在提交表單後會丟失,因爲它在請求參數中顯示。

我將不勝感激您的意見。

回答