ApplicationController
私は現在、Rails エンジンを作成しており、エンジンの構成で指定されたコントローラーから派生させたいと考えていました。
たとえばlib/my_engine.rb
、次のようなものがあります。
module MyEngine
mattr_accessor :authenticated_controller
class << self
def authenticated_controller
@@authenticated_controller.constantize
end
end
end
でapp/controllers/my_engine/application_controller.rb
、私は持っています:
class MyEngine::ApplicationController < MyEngine.authenticated_controller
#some code
end
そして、アプリのイニシャライザで、 を設定しMyEngine.authenticated_controller = 'AuthenticatedController'
ました。
これにより、エンジンが認証エンジンをほとんど意識しないようにすることができます。エンジンが必要とするのはAuthenticatedController
、この場合、current_user
. このブログ投稿をインスピレーションに使用しました。
すべて問題なく動作しているように見えますが、私は RubyMine を使用して開発を行っており、クラス定義で定数の代わりに変数を使用することについて不平を言っています。これは良いアイデアかどうかという問題を提起します。
それで、このアプローチは大丈夫ですか?私が見ていない落とし穴はありますか?そして、この方法に代わるものはありますか?