当我尝试查看食谱的成分时,我收到了这个错误,但是我在周五工作了。它说我的成分创建动作中缺少参数。我知道这个错误在说什么,但是如果它工作的话,为什么会突然这样做呢?这是代码:
成分控制器
class IngredientsController < ApplicationController
before_action :authenticate_user!
before_action :set_recipe
before_action :set_ingredient, only: [:show, :edit, :update, :destroy]
def index
@ingredients = @recipe.ingredients.alphabetical
end
def show
# @ingredient = @recipe.ingredients
# @recipes = @recipe.imngredients.where('user' = ?, current_user.id == @recipe.user_id)
end
def new
@ingredient = @recipe.ingredients.new
end
def create
@ingredient = @recipe.ingredients.create(ingredients_params)
if @ingredient.save
redirect_to recipe_ingredients_path(@recipe, @ingredients)
else
render :new
end
end
def destroy
@ingredient = Ingredient.find(params[:id])
@ingredient.delete
redirect_to recipe_ingredients_path(@recipe, @ingredients)
end
private
def ingredients_params
params.require(:ingredient).permit(:name, :recipe_id)
end
def set_recipe
@recipe = Recipe.find(params[:recipe_id])
end
def set_ingredient
@ingredient = Ingredient.find(params[:id])
end
end
不确定这是否与它有关,但是我在整个周末都没有使用我的笔记本电脑时运行我的服务器,而今天我的代码存在重大问题而且没有像星期五那样工作
答案 0 :(得分:0)
您在创建和销毁中使用@ingredients
,但未设置@ingredients
。只设置了一种成分@ingredient
(创建或销毁的成分)。
如果您想在创建或销毁成分后查看所有成分,则无需通过@ingredients
。只需使用:
redirect_to recipe_ingredients_path(@recipe)