Ruby Rails-如何处理不使用';不存在(“没有路由匹配[GET]”)?

Ruby Rails-如何处理不使用';不存在(“没有路由匹配[GET]”)?,ruby,ruby-on-rails-3,routes,Ruby,Ruby On Rails 3,Routes,我的路线看起来像 match 'about' => 'company#about' 当我设置为urlhttp://localhost:3000/aboutttt,我收到了错误消息 No route matches [GET] "/aboutttt" 我想给用户更好的反馈 我认为最好的解决方案可能是将应用重定向回应用程序,或者在应用程序的主页上,但当我遇到上述错误时,以任何方式存在路由以设置默认路由?在环境设置为“生产”的情况下运行应用程序,我想你会发现你将不再看到此消息。在开发过程中进

我的
路线
看起来像

match 'about' => 'company#about'
当我设置为url
http://localhost:3000/aboutttt
,我收到了错误消息

No route matches [GET] "/aboutttt"
我想给用户更好的反馈


我认为最好的解决方案可能是将应用重定向回应用程序,或者在应用程序的主页上,但当我遇到上述错误时,以任何方式存在路由以设置默认路由?

在环境设置为“生产”的情况下运行应用程序,我想你会发现你将不再看到此消息。在开发过程中进行调试非常方便


config/environments/production.rb
config/environments/development.rb
中有一个设置(我不记得是哪种方式),用于控制是否将异常呈现为视图。这是为生产而关闭的-相反,您将获得
public
中的404.html,您可以在开发过程中随意更改它。

。通过设置在config/environments/development.rb内进行更改:
config.consumere\u all\u requests\u local=false


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

我知道我可以根据需要修改
public/404.html
,但在这种情况下,我的问题的解决方案是将
=render:template=>'home/index'
放入
public/404.html
中。但老实说,这不是很清楚的解决方案……我明白了,我错过了你问题的那一部分。在我看来,你需要让用户知道他们键入了错误的URL,而不仅仅是将他们重定向到主页,这可能会让他们感到困惑,尤其是如果他们不断尝试使用错误的书签。你有没有尝试过我的解决方案,即在你的路线底部使用
match'*a'=>redirect(“/”
),用户通常不会键入URL地址,但单击链接和链接都是正确的。错误的URL地址通常是由试图查看发生了什么的人造成的,如果他们设置了错误的URL。但是我同意,仅仅显示
404.html
页面是最快的solution@Robin那么,
match'*a'=>重定向(“/”
仅解决
http://localhost:3000/aboutttt
,但已经不是了,例如
http://localhost:3000/articles/newwww