如果没有路由匹配,则重定向到根页面

Dip*_*hal 9 ruby-on-rails ruby-on-rails-3

如果我输入错误的路由或没有路由匹配错误,那么我想重定向到root_path.我怎样才能做到这一点?

预先感谢

Luk*_*yka 24

在Rails 4/5中你可以

get '*path' => redirect('/')
Run Code Online (Sandbox Code Playgroud)

编辑.正如@VenkatK所指出的,这应该是最后的路线.路线评估的方式是顶部的那些比底部的那些更重要.

  • 当我们在所有路线的底部写上述路线时,它会起作用 (3认同)

Chr*_*nig 16

将此语句作为config/routes.rb文件中的最后一个:

match "*path" => redirect("/")
Run Code Online (Sandbox Code Playgroud)

"*path"将匹配任何东西,会重定向到根路径.

有关更多信息,请查看官方Rails指南中的路由通配重定向.

  • 这对乘客没有用.一旦乘客启动 - >来自应用程序的消息:您不应在路由器中使用`match`方法而不指定HTTP方法.如果要将操作暴露给GET和POST,请添加`via:[:get,:post]`选项.如果要将操作暴露给GET,请在路由器中使用`get`:而不是:匹配"controller#action"执行:get"controller#action"(ArgumentError) (2认同)