1

わかりやすくするために、Rails アプリケーションごとに異なるモジュールに分割することにしました。その一環として、各モジュールに独自の ApplicationController を持たせたいと考えています。そこで、次のように各モジュールのアプリケーションコントローラーを調べて定義しました。

module Login
  class ApplicationController < ::ApplicationController
    ...
  end
end

次に、ログイン モジュールに別のコントローラーを作成します。

module Login
  class HomeController < ApplicationController

  end
end

私の予想では、これは最初に Login モジュールでアプリケーション コントローラーを検索するものでしたが、実際にはグローバル アプリケーション コントローラーを継承していることがわかります (Login::ApplicationController で行った宣言は取得されません)。これに関するいくつかの情報を検索しましたが、ログインではなくトップレベルの名前空間で ApplicationController を使用している理由を理解できませんでした。HomeController が Login::ApplicationController から継承されていれば問題なく動作しますが、将来のために Login:: プレフィックスがないと動作しない理由を知りたいと思います。

4

1 に答える 1

0

試す

module Login
  class HomeController < Login::ApplicationController

  end
end
于 2012-09-26T19:48:11.947 に答える