2012-08-27 51 views
2

我認爲,導致Object.find和Object.find_by_id之間的不同之處在於發現將引發RecordNotFound例外,如果沒有被發現,而find_by_id直接返回零。Rails的Find_by_id產生異常

然而,在我的Rails應用程序3,如果我嘗試搜索我上傳模型僞造的ID,我得到:

的ActiveRecord :: RecordNotFound在UploadsController#顯示

找不到與ID上傳= 59

請求

個參數:

{ 「ID」=> 「59」}

下面是代碼行多數民衆贊成搞亂:

@upload = Upload.find_by_id(params[:id]) 

我使用的Rails 3.1.3。

+0

這很奇怪。我在控制檯嘗試過並且工作。但我正在使用rails v 3.2。 – MurifoX

+0

它也適用於我的控制檯,而不是在應用程序本身。 – Noz

回答

0

原來這是我使用的Impressionist gem的一個問題,因爲它被掛鉤到我的Upload show操作中,並試圖在我有機會處理它之前執行它自己的查找。

0

拋404錯誤,它需要

Upload.find_by_id!(params[:id]) 

的驚歎號是神奇的。

+3

這並沒有真正回答原來的問題,所以我不能回覆,但它確實回答了我自己的問題,這導致我在這裏 - 「我如何獲得'find_by_id'來募集?」。謝謝 – Nick

+0

@尼克哈哈。原來的問題是什麼?只是回頭看看它,我真的沒有看到一個...... – kayluhb

+0

我想他試圖問爲什麼他用'find_by_id'得到一個異常,因爲它不應該提高。 – Nick