我希望用户#edit动作始终显示为/settings
。
在我的路线中我有
get "settings" => "users#edit", as: :settings
任何设置链接都是这样的
<%= link_to "Settings", settings_path %>
但是当我访问example.com/username/edit
时,它不会重定向。
如何将其重定向到settings
?这是一种不好的做法吗?
答案 0 :(得分:2)
我认为你打算这样做
获取'/用户名/编辑',以:重定向('/ settings')
你上面做的那个试图让那个url使用一个叫做的方法
edit
中的users_controller
,其别名为settings
,可在您的链接中用作settings_path
查看Rails API以获取这些类型的问题
总是有帮助的答案 1 :(得分:1)
通过定义新路由settings
,您告诉Rails将所有来自/settings
的GET请求路由到users_controller
的{{1}}方法。这并不意味着所有使用该控制器的请求都应该重定向到另一个路由 - 这里您刚刚定义了两个使用相同控制器方法的独立路由。
如果您不想使用edit
,我建议您删除该路线。如果您目前有类似
user/edit
只需将其更改为
即可# config/routes.rb
resources :users
继续使用# config/routes.rb
resources :users, except: [:edit]
帮助器。