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']'不会给我。 –