我想用/users/:id
命令替换由resources
命令创建的普通/profile
路由,并使用更抽象的get '/profile', to: 'users#show'
路由。在我的应用程序中无法查看其他用户配置文件,因此当前路由不是特定的。
我尝试用':/ p>覆盖'resources:users'创建的路由
id
和其他差异和组合,但似乎无法做到正确。由于缺少{{1}},控制器无法找到用户,或者根本无法找到路径。
感谢您的帮助!
答案 0 :(得分:1)
您可以在routes.rb文件中使用此代码:
resources :users, :except => :show
collection do
get 'profile', :action => 'show'
end
end
它会生成网址“/ users / profile”。
但是,如果你只想使用'/ profile',那么不要在用户资源块中创建路由作为集合。
resources :users, :except => :show
get 'profile' => "users#show", :as => :user_profile
它会重定向'/ profile'以显示用户控制器中的操作。
答案 1 :(得分:0)
我建议您只需添加指向users/me
show
行为的UsersController
路线,就像这样:
resources :users, only: [] do
collection do
get 'me', action: :show
end
end
答案 2 :(得分:0)
您还可以在routes.rb文件中使用match关键字。
match 'users/:id' => 'users#show', as: :user_profile, via: :get