我实现了一个简单的自定义错误解决方案。这个:http://ramblinglabs.com/blog/2012/01/rails-3-1-adding-custom-404-and-500-error-pages
除了routes.rb文件中丢失的路由外,其他所有路由都运行良好。。
为了在缺少路由时找到我的error_controller,我使用了通配符解决方案:match '*not_found', to: 'errors#error_404'
但是。。。现在,当我尝试进入我的网站的一个子部分时,它位于:/管理员,我进入错误页面。wilcard被触发,即使是艰难的管理部分的路由是在另一个路由文件中定义的,位于:config/routes/admin.rb 下
我能做什么?感谢
编辑:使用rails 3.0.20和ruby 1.8.7
如果您使用的是Rails 3.2+,那么有一个更简单的路由解决方案。首先在"config/application.rb"中将您的应用程序设置为错误处理程序
config.exceptions_app = self.routes
现在,当有一个路由时,你的应用程序会查找你的路由来处理它。在"config/routes.rb"中,你可以添加一个路由,例如:
match "/404", :to => "errors#not_found"
更详细的解释可以在这里找到。
好吧,直到我更新到Rails 3.2+
我只是将'*not_found', to: 'errors#error_404'
放入加载的最后一个路由文件中。
这样,它真的在路线的尽头,现在我所有的路线都在工作。并且在需要时仍然触发错误。