重定向用户#edit to / settings?

时间:2017-01-29 20:26:40

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

我希望用户#edit动作始终显示为/settings

在我的路线中我有

get "settings" => "users#edit", as: :settings

任何设置链接都是这样的

<%= link_to "Settings", settings_path %>

但是当我访问example.com/username/edit时,它不会重定向。

如何将其重定向到settings?这是一种不好的做法吗?

2 个答案:

答案 0 :(得分:2)

我认为你打算这样做

获取'/用户名/编辑',以:重定向('/ settings')

你上面做的那个试图让那个url使用一个叫做的方法 edit中的users_controller,其别名为settings,可在您的链接中用作settings_path

查看Rails API以获取这些类型的问题

总是有帮助的

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

答案 1 :(得分:1)

通过定义新路由settings,您告诉Rails将所有来自/settings的GET请求路由到users_controller的{​​{1}}方法。这并不意味着所有使用该控制器的请求都应该重定向到另一个路由 - 这里您刚刚定义了两个使用相同控制器方法的独立路由。

如果您不想使用edit,我建议您删除该路线。如果您目前有类似

的内容
user/edit

只需将其更改为

即可
# config/routes.rb
resources :users

继续使用# config/routes.rb resources :users, except: [:edit] 帮助器。