Rails - 如何处理不存在的路由(“没有路由匹配[GET]”)?

时间:2012-04-18 22:19:23

标签: ruby ruby-on-rails-3 routes

我的route看起来像

match 'about' => 'company#about'

当我设置为网址http://localhost:3000/aboutttt时,收到错误消息

No route matches [GET] "/aboutttt"

我想给用户更好的反馈。

根据我的观点,最佳解决方案可能是重定向应用程序,或者在应用程序的主页上,但是当我收到上述错误时,以任何方式存在于路由中以设置默认路由?

2 个答案:

答案 0 :(得分:5)

在开发过程中。通过设置:在config / environments / development.rb中进行更改: config.consider_all_requests_local = false

这将禁用完整错误报告,而是显示一个包含用户交互式响应的页面。但是这已经在生产环境中禁用了。但我不建议在开发模式下关闭它。

答案 1 :(得分:4)

在环境设置为生产的情况下运行您的应用,我想您会发现您将不再看到此消息。在开发过程中,它可以方便调试。

config/environments/production.rbconfig/environments/development.rb中有一个设置(我记不清哪个方向)控制是否将异常呈现为视图。这是关闭生产 - 而是获得public中的404.html,您可以随意更改。