2012-09-14 104 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

相关问题