Пространство имен контроллеров Rails
Каковы преимущества и недостатки использования пространства имен в ruby на рельсах. Например: у меня много контроллеров типа
CompanyLocations
CompanyXXXX
CompanySports
CompanyActivites
CompanyQQQQQ
Я хочу поместить все эти контроллеры в папку "Компания". Какая для этого лучшая практика?
Ответы
Ответ 1
Вам нужно создать подпапку внутри вашего каталога controller/и то же самое в вашем представлении/каталоге.
Ваш файл контроллера должен выглядеть как
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
Ответ 2
Просто потяните ваши контроллеры в папке.
создать папку app/controllers/company
![enter image description here]()
и создайте контроллер 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.