작은 레서피 웹 사이트를 구축하려고합니다. 하지만 parent (recipe) 액션을 통해 내 자식 (recipe_ingredients) 테이블을 저장하기 위해 중첩 된 특성을 사용하려고 할 때. 그것에 대한 데이터가 없으면 나를 위해 ID를 생성합니다. 어느 누구도 도와 줄 수 있습니까? 레시피레일에 중첩 된 속성
모델 : recipe_ingredients위한
class Recipe < ActiveRecord::Base
has_many :recipe_ingredients
accepts_nested_attributes_for :recipe_ingredients, allow_destroy: true
end
모델 : 레시피
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
``
I 레일 콘솔 확인한 후 , 나의 recipe_params가 아래와 같습니다.
[7] pry(#<RecipesController>)> recipe_params Unpermitted parameter: recipe_ingredients => {"name"=>"an example recipe", "category"=>"fry", "instructions"=>["do it", "ignore it"]}
"허용되지 않은 매개 변수"문제를 해결하는 방법을 모르겠습니다. 도와주세요 ~ 고맙습니다 ~
업데이트 : 위의 문제가 해결되었습니다. 내 컬 요청이 문제의 원인입니다. 내 데이터에 "recipe_ingredients_attributes"를 지정하지 않았습니다. 그러나 레일은 recipe_ingredients 테이블과 빈 데이터 한 줄에 대한 데이터 저장에 도움이됩니다. – tina