当我尝试查看食谱的成分时,我收到了这个错误,但我在周五工作了。它说我的成分创建动作中缺少参数。我知道这个错误在说什么,但是如果它工作的话,为什么会突然这样做呢?这是代码:
成分控制器
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
不确定这是否与它有关,但是我在整个周末都没有使用我的笔记本电脑而运行我的服务器今天我的代码存在重大问题而且没有像周五那样工作
你在创建和销毁中使用@ingredients
,但没有设置@ingredients
。只设置了一种成分@ingredient
(创造或销毁的成分)。
如果您想在创建或销毁成分后查看所有成分,则无需通过@ingredients
。只需使用:
redirect_to recipe_ingredients_path(@recipe)