目前在我的路线中我有:
# USER RESOURCES
resources :users do
resources :repositories
patch 'change_password'
get 'account_setting'
end
为account_setting
操作生成此路径:
user_account_setting GET /users/:user_id/account_setting(.:format) users#account_setting
我想要的是:
user_account_setting GET /users/:id/account_setting(.:format) users#account_setting
这两个基本上是相同的,但是第一个为user_
添加id
前缀,因为它位于用户资源块中,因此会添加。{/ p>
SIDE NOTE
我知道我可以简单地从用户资源块中删除account_setting
操作并写入:
get 'users/:id/account_setting', to: 'users#account_setting'
但我不想。
答案 0 :(得分:8)
您可以按照以下方式执行此操作:
resources :users do
member do
get 'account_setting'
end
end
要添加成员路由,请将成员块添加到资源块中。
有关文档,您可以查看http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Resources.html
答案 1 :(得分:-2)
在Rails 4中,您可以更改id参数的名称 只需使用
resources :users, param: :id do
resources :repositories
patch 'change_password'
get 'account_setting'
end
这将生成
/用户/:ID / account_setting