如果我输入了错误的路径或者没有匹配的路径,那么我想要重定向到root_path。我该怎么办?
提前感谢。
提前感谢。
在Rails 4/5中,你可以
get '*path' => redirect('/')
编辑。正如 @VenkatK 指出的那样,这应该是最后一个路由。路由的评估方式是顶部的路由优先级高于底部的路由。
match
方法时,您不应该没有指定HTTP方法。如果您想将您的操作公开给GET和POST,请添加via: [:get, :post]
选项。如果您只想将您的操作公开给GET,请在路由器中使用get
: 替换原来的代码:match "controller#action"
改为:get "controller#action"
- Postscripter您可以通过将以下内容放入路由文件(底部)来重定向404。
map.connect '*path', :controller => 'some_controller', :action => 'some_action'
以下是代码示例。
match "*path" => redirect("/")
在这个答案中有更多细节,以及通过捕获异常来实现的替代方法。
针对最新的 Rails 4.2+,match
语法有了微小的更改:
请将下面的代码放在项目 config/routes.rb
文件底部:
match '*path', to: redirect('/'), via: :all
get '*path' => redirect('/404.html')
您不应在路由器中使用“match”方法而不指定HTTP方法
。:via => [:get, :post]
添加到您的重定向中:match '*path' => redirect('/'), :via => [:get, :post]
:notice
或:flash
提示? - Hellfar