嵌套控制器在我routes.rb
我有軌道 - 如何定位的嵌套的資源路徑
namespace :admin do
resources :clients do, only: [:index] do
resources :products, only: [:index, :new, :create]
end
resources :products, only: [:index]
end
請注意,我有兩行resources :products
。一個嵌套在resources :clients
之內,另一個作爲:admin
的頂級資源;這兩個中的每一個在應用程序中都有不同的用途。
rake routes
給我:
admin_clients GET /admin/clients(.:format) admin/clients#index
admin_client_products GET /admin/clients/:client_id/products(.:format) admin/products#index
POST /admin/clients/:client_id/products(.:format) admin/products#create
new_admin_client_product GET /admin/clients/:client_id/products/new(.:format) admin/products#new
admin_products GET /admin/products(.:format) admin/products#index
我有一個admin_client_products
的嵌套product#index
資源。我也有頂級product#index
資源admin_products
。但是,他們指向相同的控制器操作:admin/product#index
。
問題:在這一點上,我需要導軌來推斷這是兩種不同的行爲。使用rails慣例,有沒有辦法告訴rails這兩個資源應該有不同的控制器動作,即應該打到admin/products#index
而另一個應該打到admin/clients/products#index
?
嵌套的路線應該打這個:
class Admin::Clients::ProductsController < Admin::BaseController
def index; end
end
頂層路線應該打這個:
class Admin::ProductsController < Admin::BaseController
def index; end
end