2012-09-14 41 views
1

我希望能夠命名空間我的控制器,沒有命名空間的URL。因此,舉例來說,我希望能有一個像一個文件夾中的控制器:有名稱空間控制器沒有名稱空間URL的Rails方式?

app/controllers/abc/my_controller 

,另一個在

app/controllers/def/my_controller 

我不想路線包含/ ABC,或/ def,而是使用約束來消除它們之間的歧義。實現這個目標的最大Rails方法是什麼?

一些背景:我正在構建一個多域網站,約束是請求域。

回答

8

您可以使用範圍與塊。

scope :module => "abc" do 
    resources :my_controller 
end 

scope :module => "def" do 
    resources :my_controller 
end 

或通過它在routes guide單獨

resources :my_controller, :module => "abc" 
resources :my_controller, :module => "def" 

的更多信息。關於範圍的信息就在我鏈接到的部分的表格下。

1

的routes.rb:

resources :resource_name, module: 'ControllerNameSpace', constraints: {subdomain: 'foo'}

Rails guide link

相關問題