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?
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
Tirez simplement vos contrôleurs dans le dossier.
créer le dossier app/controllers/company
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
Juste des conseils. Pour les vues et la mise en page, vous pouvez utiliser: ActionController # layout et ActionController # append_view_path .