用户可以使用UsersController
此控制器仅显示有关当前用户的信息。
我想调整路线,以便:
get /account
访问UsersController#show
,从current_user
变量中检索到user_id
get /account/edit
同样访问UsersController#edit
put /account/
会点击UsersController#update
,再次使用current_user
代替ID
基本上我想在我的网址中将UsersController称为“帐户”,我不想使用ID,因为我总是只使用当前用户。我也不希望像/ users / 1这样的网址能够正常运行。
我怎样才能做到这一点?
答案 0 :(得分:1)
我认为你在谈论奇异的资源。
http://guides.rubyonrails.org/routing.html#singular-resources
# Not sure if you need this
resource :users, :only => [:index, :create, :destroy]
# This is what you are looking for
resource :user, :as => :account, :only => [:show, :edit, :update]
由于您需要“/ account”而不是“/ user”,因此您应该
resource :account, :controller => :users, :only => [:show, :edit, :update]
答案 1 :(得分:0)
根据您的设置,您可能在routes.rb
:
resources :users
您应该可以将其更改为:
resources :users, :as => "account"
我没有测试过,但这应该有效。有关详细信息,请查看Rails guides on Routing。
答案 2 :(得分:0)
两种方法:
在你的route.rb中:
资源:用户,:as =>'accounts'
在您的route.rb中,删除资源:users并添加:
匹配'/ account'=>'用户#show' 匹配'/ account / edit'=>'用户#edit' 匹配'/ account /'=>'用户#upcate'