2

モデル User と対応する UsersController があります。プロジェクトの変更により、User モデルの同じ正確な機能を CentersController に含める必要があり、もちろん Centers のみの追加機能があります。UsersController はそのままです。

設計上の問題は、UsersController メソッド (更新、編集、作成など) を CentersController で複製せずに使用する方法です。たとえば、ユーザーがセンターのビューで更新されると、ユーザー コントローラーの更新アクションが呼び出されますが、ビューアーはセンター ビューにリダイレクトされる必要があります。

4

1 に答える 1

2

これがモジュール、つまり「ミックスイン」の目的です。共通のメソッドをモジュールに入れ、そのモジュールを と の両方に含めUsersControllerますCentersController

module Foo
  def bar
  end
end

class UsersController < ApplicationController
  include Foo
end

class CentersController < ApplicationController
  include Foo
end

または、共通コードをコントローラーに配置し、そのコントローラーから継承します。

class FooController < ApplicationController
  def bar
  end
end

class UsersController < FooController
end

class CentersController < FooController
end
于 2012-08-28T16:41:31.290 に答える