如何将Rails旧路径重定向到新路径?

时间:2018-02-24 20:48:12

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

所以这是我所有用户的路径:

http://localhost:3000/users

我想将 / users 更改为 / members ,所以我这样做了:

get '/members' => 'users#index', as: "members"

通过这种方式,用户可以访问 http://localhost:3000/members ,并在 / users 中获取所有相同的内容。

但问题是人们仍然可以访问 http://localhost:3000/users 。如何删除/隐藏/重定向 / users ,以便人们在尝试使用旧的 / users 网址时会看到 / members http://localhost:3000/users

2 个答案:

答案 0 :(得分:3)

嗯,这取决于你是想要消除路径还是简单地覆盖它

既然你提到http://localhost:3000/users仍在某处映射,我会假设你有get '/users' => 'users#index'行,或者更像是resources :users。如果您有第一行,只需删除它,如果是第二行,您可以使用:except选项限制您创建的路线

resources :users, except: :index

对于重定向,发布的解决方案hamdi也应该有效。

查看rails routings页面了解更多信息:http://guides.rubyonrails.org/routing.html

干杯

答案 1 :(得分:1)

您可以像下面这样重定向:

get '/users', to: redirect('/members')

您还可以在以下链接中找到更多重定向信息:

http://guides.rubyonrails.org/routing.html#redirection