Ruby on Rails)で名前空間を使用することの利点と欠点は何ですか。例:次のような多くのコントローラがあります。
CompanyLocations
CompanyXXXX
CompanySports
CompanyActivites
CompanyQQQQQ
これらすべてのコントローラーをCompanyフォルダーに配置したいと考えています。 Railsこれのベストプラクティスは何ですか?
あなたはあなたのcontroller /ディレクトリ内に、そして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 を使用できます。