我正在尝试在控制器中为嵌套资源创建编辑动作。当我尝试运行“编辑”操作时,出现以下错误:
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
任何想法可能是什么原因造成的?请让我知道是否需要任何其他代码来为问题提供上下文。谢谢!
答案 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])
引发错误的原因。否则,它不会失败,但最终成分将完全不同。