web-dev-qa-db-fra.com

Rails Espace de noms du contrôleur

Quels sont les avantages et les inconvénients de l'utilisation de l'espace de noms dans Ruby on Rails. Par exemple: j'ai de nombreux contrôleurs comme

CompanyLocations 
CompanyXXXX 
CompanySports 
CompanyActivites
CompanyQQQQQ

Je veux mettre tous ces contrôleurs dans le dossier Company. Quelle est la meilleure pratique Rails pour cela?

16
kashif

Vous devez créer un sous-dossier dans votre répertoire controller /, et le même dans votre répertoire views /.

Votre fichier de contrôleur devrait ressembler à

module Company
 class SportsController < ApplicationController

 def index
 end

 end
end

...ou

class Company::SportsController < ApplicationController

 def index
 end

end

Vous pouvez également appeler vos partiels de cette façon

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

Puis dans routes.rb

namespace :company do
 resources :sports
end
37
Jenorish

Tirez simplement vos contrôleurs dans le dossier.
créer le dossier app/controllers/company
enter image description here
et créez un contrôleur locations_controller.rb avec structure:

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

    def index
    end

  end
end

dans routes.rb utilisation scope :module:

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

cela génère des routes:

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

mettre à jour:

Juste des conseils. Pour les vues et la mise en page, vous pouvez utiliser: ActionController # layout et ActionController # append_view_path .

25
Зелёный