Low*_*ain 5 routes ruby-on-rails
我想创建一个rails路由来编辑用户的个人资料.
而不是必须使用/ users /:id/edit,我想要一个像/ edit_profile的网址
是否有可能创建一个动态路由,将/ edit_profile转换为/ users/{user's id}/edit,或者我应该在控制器中做什么?
您可能想为此任务创建一个单独的控制器,但您也可以继续使用users_controller并仅检查是否有一个params[:id]集合:
def edit
if params[:id]
@user = User.find(params[:id])
else
@user = current_user
end
end
Run Code Online (Sandbox Code Playgroud)
但您应该注意,/users通常会路由到操作,但如果您仍然有该路由index,则不会。但你可以为此设置一条不同的单一路径:showmap.resources :users
map.resources :users
map.resource :profile, :controller => "users"
Run Code Online (Sandbox Code Playgroud)
这种方式/users将列出所有用户,/users/:id将显示任何用户,并将/profile显示show当前登录的用户页面。要编辑您自己的个人资料,您可以调用“/profile/edit”。