Controller#edit中的RecordNotFound

时间:2018-09-05 02:17:58

标签: ruby-on-rails ruby controller nested-resources

我正在尝试在控制器中为嵌套资源创建编辑动作。当我尝试运行“编辑”操作时,出现以下错误:

Bundle bundle = getIntent().getExtras();
    nselectedfromadapter= bundle.getStringArrayList("list");

下面是我的控制器:

ActiveRecord::RecordNotFound in IngredientsController#edit
Couldn't find Recipe with 'id'=287

我的“修改”链接:

class IngredientsController < ApplicationController
  def edit
    @recipe = Recipe.find(params[:id])
    @ingredient = @recipe.ingredients.find(params[:id])
  end
end

任何想法可能是什么原因造成的?请让我知道是否需要任何其他代码来为问题提供上下文。谢谢!

1 个答案:

答案 0 :(得分:3)

尝试将edit操作更改为:

def edit
    @recipe = Recipe.find(params[:recipe_id])
    @ingredient = @recipe.ingredients.find(params[:id])
end

似乎是与其他方法唯一的区别。另外,由于您位于IngredientsController中,因此params[:id]是配料的id,而不是食谱的Recipe

您似乎没有一个id的{​​{1}},这就是Recipe.find(params[:id])引发错误的原因。否则,它不会失败,但最终成分将完全不同。