Rails:ActiveRecord :: RecordNotFound,无法找到id = num </model>的<model>

时间:2012-06-13 19:47:54

标签: ruby-on-rails-3 activerecord

我的Ruby on Rails应用程序中有两个模型:User和Bookcase。我为每个书架提供了一个编辑链接,但是当我点击这些链接时,我遇到了一个错误:

ActiveRecord::RecordNotFound in BookcasesController#edit
Couldn't find User with id=19

(请注意,它要求用户ID。另外,值得注意的是,Bookcases属于用户。)

以下是我用来创建链接的代码段:

<%= link_to "edit", edit_bookcase_path(bookcase.id) %>

如果您需要更多代码,请告诉我,我会发布!

1 个答案:

答案 0 :(得分:2)

从我所知道的问题来看,如果你在EDIT方法的BookcasesController中,你不应该要求用户,你应该调用BookCase,如下所示:

@bookcase = BookCase.find(params[:id]) // WHAT YOU WANT

似乎你有这个代码,它给你错误:

@bookcase = User.find(params[:id]) // NOT WHAT YOU WANT

这将返回具有id 19的BookCase,它应属于用户。如果您需要访问该书所属的用户,您可以这样做:

@user = @bookcase.user

此外,您可以使用编辑链接,而不使用ID调用:

<%= link_to "edit", edit_bookcase_path(bookcase) %>