Подтвердить что ты не робот

Пространство имен контроллеров Rails

Каковы преимущества и недостатки использования пространства имен в ruby ​​на рельсах. Например: у меня много контроллеров типа

CompanyLocations 
CompanyXXXX 
CompanySports 
CompanyActivites
CompanyQQQQQ

Я хочу поместить все эти контроллеры в папку "Компания". Какая для этого лучшая практика?

4b9b3361

Ответ 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.