2012-06-13 77 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

非常歡迎。很高興我能夠幫助你。 –

相關問題