我按照http://ariejan.net/2011/10/14/rails-3-customized-exception-handling/的指示操作,並遇到了路障。導軌,自定義例外
我比較新的鐵軌,所以我不知道我做了什麼正確/不那麼正確。
的第一步是創建類
MyApp::ProfileNotFoundError < StandardError
end
所以我去了應用程序/模型和創建profile_not_found.rb包含以下內容,其中(APP)是Rails的定義我的應用程序的名稱。 application.class.parent_name,但我隱藏了這篇文章的安全/隱私。
(APP)::ProfileNotFoundError < StandardError
end
在應用程序/控制器/ application_controller.rb我加
rescue_from (APP)::ProfileNotFoundError, :with => :profile_not_found
,在我登錄控制器我加
raise (APP)::ProfileNotFoundError if @profile.nil?
然而,當我嘗試測試代碼,我得到路由錯誤,說明
uninitialized constant (APP)::BlankUsernameError
在我看來,這表明我做了有關類創建的錯誤,但教程太模糊了,我無法弄清楚。任何指針?
我在Ubuntu 12.04.2 x86_64的運行Rails的3.0.20 &的Ruby 1.8.7
'class'在那裏,當然,但我認爲'包括'修復它!謝謝。 Sage建議與/ errors目錄,我很感激它。 – Crash
@Crash點擊勾號將其標記爲已回答 – varatis
我可能說得太快了 - '包括'實際上以不同的方式破壞了它。當我使用'include(APP):: ProfileNotFoundError'時,我得到'錯誤參數類型類(預期模塊)'。我試圖將其更改爲'包含ProfileNotFoundError',並且我得到'預期.../app/errors/profile_not_found_error.rb來定義ProfileNotFoundError'。奇怪的是,如果我刪除'包括'並嘗試它,我會得到相同的錯誤,區別在於,如果我點擊刷新,它會按預期加載頁面和錯誤函數。我之前沒有得到錯誤,因爲它似乎只發生在服務器init上。 – Crash