我一直得到params是空的或丢失错误

问题描述 投票:0回答:1

当我尝试查看食谱的成分时,我收到了这个错误,但我在周五工作了。它说我的成分创建动作中缺少参数。我知道这个错误在说什么,但是如果它工作的话,为什么会突然这样做呢?这是代码:

成分控制器

   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

不确定这是否与它有关,但是我在整个周末都没有使用我的笔记本电脑而运行我的服务器今天我的代码存在重大问题而且没有像周五那样工作

ruby-on-rails
1个回答
0
投票

你在创建和销毁中使用@ingredients,但没有设置@ingredients。只设置了一种成分@ingredient(创造或销毁的成分)。

如果您想在创建或销毁成分后查看所有成分,则无需通过@ingredients。只需使用:

redirect_to recipe_ingredients_path(@recipe)
© www.soinside.com 2019 - 2024. All rights reserved.