Rails控制器命名空间

在rails上使用ruby中的命名空间有什么优缺点。 例如:我有很多控制器喜欢

CompanyLocations CompanyXXXX CompanySports CompanyActivites CompanyQQQQQ 

我想将所有这些控制器放在Company文件夹中。 什么是铁路最佳做法?

您必须在控制器/目录中创建一个子文件夹,并在views /目录中创建相同的子文件夹。

你的控制器文件应该是这样的

 module Company class SportsController < ApplicationController def index end end end 

...要么

 class Company::SportsController < ApplicationController def index end end 

你也可以用这种方式打电话给你的部分

 render :template => "company/sports/index" 

然后在routes.rb中

 namespace :company do resources :sports end 

只需将控制器拉入文件夹即可。
创建文件夹app/controllers/company
在此处输入图像描述
并使用结构创建一个控制器locations_controller.rb

 module Company class LocationsController < ApplicationController layout '/path/to/layout' append_view_path 'app/views/path/to/views' def index end end end 

routes.rb使用scope :module

 scope module: 'company' do get '/locations', to: 'locations#index' # this route in scope end 

这会产生路线:

 locations_path GET /locations(.:format) company/locations#index 

更新:

只是提示。 对于视图和布局,您可以使用: ActionController#layout和ActionController#append_view_path 。