我正在嘗試構建一個小配方網站。但是,當我嘗試使用嵌套屬性通過父(配方)操作保存我的孩子(recipe_ingredients)表。它只爲我生成ids而沒有任何數據。任何人都可以幫忙嗎?在rails中的嵌套屬性
模型配方:
class Recipe < ActiveRecord::Base
has_many :recipe_ingredients
accepts_nested_attributes_for :recipe_ingredients, allow_destroy: true
end
模型recipe_ingredients:
class RecipeIngredient < ActiveRecord::Base
belongs_to :recipe, inverse_of: :recipe_ingredients
end
控制器配方:
def create
@recipe = Recipe.new(recipe_params)
@recipe.recipe_ingredients.build
***binding.pry***
if @recipe.save
render json: @recipe, status: :created, location: @recipe
else
render json: @recipe.errors, status: :unprocessable_entity
end
end
def recipe_params
params.require(:recipes)
.permit(:name, :category, instruction: [], recipe_ingredients_attributes: [:amount, :ingredient, :measure])
end
```
後,我請與導軌控制檯,我的recipe_params就像下面
[7] pry(#<RecipesController>)> recipe_params Unpermitted parameter: recipe_ingredients => {"name"=>"an example recipe", "category"=>"fry", "instructions"=>["do it", "ignore it"]}
我不知道如何解決「未經許可的參數」的問題。請幫助〜謝謝〜
更新:上面的問題解決了,這是我的curl請求導致的問題。我沒有爲我的數據指定「recipe_ingredients_attributes」。但是,rails幫助我保存recipe_ingredients表的數據以及一行空數據。 – tina