2012-06-13 76 views
0

我的Ruby on Rails应用程序中有两个模型:User和Bookcase。我提供了一个编辑链接,每个书柜,但是当我点击这些链接,我遇到一个错误:Rails:ActiveRecord :: RecordNotFound,找不到<model> id = num

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

(请注意,它要求用户ID此外,值得注意的是,书柜belong_to用户。)

这是我用来创建链接的片段:

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

如果您需要任何进一步的代码,让我知道,我会后它!

回答

2

从我可以告诉你有什么要求,如果你是在BookcasesController的编辑方法,你不应该要求用户,你应该呼吁书柜,像这样:

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

看来你有这样的代码,而不是,这是给你的错误:

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

这将返回书柜用id 19,这应该属于一个用户。如果您需要,然后访问,这本书属于用户,你可以这样做是这样的:

@user = @bookcase.user 

而且,你可以用喜欢的编辑链接,没有显示来电:

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

谢谢,de_an!那就是诀窍。我正在给用户使用:id参数,这样我就可以创建一个分页的书架列表,但现在你已经指出了,我意识到这是行不通的。稍微修改一下,我可以通过将代码放入Users控制器来获得相同的效果。 – nullnullnull

+0

非常欢迎。很高兴我能够帮助你。 –

相关问题