[英]Rails nested resources ignore single route
我的路由中有一個 rails 嵌套資源。
IE
resources :users do
resources :accounts
end
resources :accounts
上市操作當然是:
GET /users
GET /users/:user_id/accounts
我想擺脫/users
路線但保留/users/:id/accounts
路線。
知道我怎么能 go 關於這個? 謝謝
使用except: [:index]
not 將限制兩條路線。 這是一個荒謬的主張,只需運行rails routes
就可以輕松駁倒。 resources
的任何選項都沒有“涓涓細流”到嵌套調用。
resources :users, only: [] do
resources :accounts, only: :index
end
only: []
跳過所有“用戶”路由的生成。
這將生成路線:
Prefix Verb URI Pattern Controller#Action
user_accounts GET /users/:user_id/accounts(.:format) accounts#index
# ...
請注意,參數鍵是:user_id
而不是:id
。 如果您真的想打破約定,您需要這樣做:
# don't do this - its stupid
scope '/users/:id', as: :user do
resources :accounts, only: :index
end
let set only: []
then rails routes 將根據需要生成/users/:id/accounts
resources :users, only: [] do
resources :accounts # , only: [:index] if you just only keep users/:id/accounts
end
# if you only want to get rid of GET /users
resources :users, except: [:index]
# if you mean you want to get rid all of /users routes (not just only GET /users) then comment above line
或者您可以使用這兩種相同的方式,將namespace
與scope
一起使用:
namespace :users do
scope ':user_id' do
resources :accounts
end
end
僅使用scope
:
scope ':users/:user_id' do
resources :accounts
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.