5

.net からレールに移行しており、初心者です。私は遊んでみましたが、管理名前空間の基本コントローラーを作成していくつかの機能を共有する方法がわかりません。つまり、試行ごとにエラーが発生するため、Base クラスをどこに配置するかということです。

ありがとう

4

1 に答える 1

14

Rails 3 を使用していると仮定します。次のように実行できます。

ルート.rb

namespace :admin do
  resources :users
end

コントローラーフォルダーの構造は次のとおりです。

controllers/
  application_controller.rb
  admin/
    base_admin_controller.rb
    users_controller.rb

admin/base_admin_controller.rb:

class Admin::BaseAdminController < ApplicationController
  protected

    def some_shared_method
      # Do something
    end
end

すべての管理コントローラーが共有する任意のメソッドを追加できます。次に、BaseAdminController クラスを継承するだけです。

admin/users_controller.rb:

class Admin::UsersController < Admin::BaseAdminController
  def index
    some_shared_method
  end
end
于 2012-12-18T10:14:44.823 に答える