0

我实现了一个简单的自定义错误解决方案。这个: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'

但是...现在,当我尝试输入位于 /admin 下的站点的子部分时,我进入了错误页面。通配符被触发,即使管理部分的路由是在不同的路由文件中定义的,位于:config/routes/admin.rb

我能做些什么?谢谢

编辑:使用 rails 3.0.20 和 ruby​​ 1.8.7

4

2 回答 2

1

如果您使用的是 Rails 3.2+,则为您的路线提供更简单的解决方案。首先在 'config/application.rb' 中将您的应用设置为错误处理程序

config.exceptions_app = self.routes

现在当有一个你的应用程序会寻找你的路线来处理它。在 'config/routes.rb' 中,您可以添加如下路由:

match "/404", :to => "errors#not_found"

可以在这里找到更详细的解释。

于 2013-02-08T23:11:22.073 回答
0

好的,直到我更新到 Rails 3.2+

我只是放入'*not_found', to: 'errors#error_404'最后一个加载的路由文件。

这样它真的在路线的尽头,现在我所有的路线都可以工作。并且在需要时仍然会触发错误。

于 2013-02-10T15:44:06.107 回答