2
在我的Rails 3應用程序,我通過獲取PATH_INFO:救援LoadError在Rails應用程序
Rails.application.routes.recognize_path(url, { :method => request.request_method }) rescue {}
如果一個履帶式命中像 「http://localhost:3000/admin_」 一個網址,上面的代碼中引發了以下錯誤:
LoadError: Expected /Users/user/myRailsApp/app/controllers/admin_controller.rb to define Admin_Controller
from /Users/user/.rvm/gems/ree-1.8.7-2012.02/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:492:in `load_missing_constant'
我有兩個問題:
- 爲什麼
rescue
不工作?如果我將其更改爲rescue LoadError => e
,則會優雅地處理異常。 - 有沒有其他的選擇,而不是拯救這樣的例外?
謝謝。它回答了第一個問題。第二個呢?有沒有其他辦法來處理這樣的網址? –
我不明白你爲什麼以這種方式獲取路徑信息,而是使用'request.env ['PATH_INFO']' –
'Rails.application.routes.recognize_path'給了我一個'controller'和'action'的hash鍵。我需要這個哈希來做一些進一步的處理。這甚至適用於自定義路線。 'request.env ['PATH_INFO']'不會給我。 –