1
User.find_by_username('some_user')
,也未能找到上述查詢返回零用戶。但是,
User.find(1)
如果無法找到用戶,則會拋出ActiveRecord :: RecordNotFound錯誤。鐵軌指南說這應該發生,但並不能解釋爲什麼。這是我的問題,爲什麼有兩種不同的行爲?謝謝!
User.find_by_username('some_user')
,也未能找到上述查詢返回零用戶。但是,
User.find(1)
如果無法找到用戶,則會拋出ActiveRecord :: RecordNotFound錯誤。鐵軌指南說這應該發生,但並不能解釋爲什麼。這是我的問題,爲什麼有兩種不同的行爲?謝謝!
ActiveRecord :: RecordNotFound僅當沒有找到給定id(s)的記錄時纔會引發。
如果你不想例外通過ID進行搜索時,您可以使用:
User.find_by_id('foo')
的區別,在我看來:
第一個(1)假設您的記錄存在,所以失敗應該引發異常。
第二個(2)假定您想查詢您的記錄的存在,所以缺少記錄結果爲零。
爲了一致,請使用find_by_id – apneadiving 2013-04-21 21:17:31