1

Rails 3.2アプリに初期化子があり、構成ファイルに基づいて起動時にモジュールが含まれています。これは次のようになります。

Array(Settings.site.authentications).map(&:to_sym).each do |sym|
  AuthAuth.class_eval do
    include Object.const_get(sym)
  end
end

Array(Settings.site.authorizations).map(&:to_sym).each do |sym|
  AuthAuth.class_eval do
    include Object.const_get(sym)
  end
end

# This exception is never raised when I start the server.  So the includes 
# appear to be working correctly.
raise "method not found!" unless AuthAuth.new.respond_to? :dynamically_included_method

AuthAuthユーザーが認証および承認されていることを確認するために、ApplicationControllerで使用されます。:before_filterこれは正常に機能し、サイトごとに承認および認証ロジックを設定する構成可能な方法があるという要件に適合します。

ただし、サーバーを開発モードで実行しているときに、アプリケーションのいずれかのクラスにコードを変更すると、AuthAuthモジュールが含まれていない場合のデフォルトの動作に戻ることに気付きました。

初期化ファイル以外にこのコードを含めるのに適切な場所はありますか?

これは比較的小さな問題です。コードを変更するたびに開発サーバーを再起動するのは簡単ですが、興味があります。

4

0 に答える 0