1

いくつかのグローバル変数を設定していました ( devisegem 認証のカスタマイズを設定するため)。そのため、モジュール MyAuth を宣言するフォルダーにファイルを配置auth_provider.rbします (ファイル内)。問題は、このモジュールがフォルダー内のファイルによって呼び出されたときに、それを呼び出して、ファイルに入れなければならなかったことですconfig/authmyauth.rbinitializerscaller.rbapplication.rb

config.before_initialize do
      Dir["#{config.root}/config/auth/*.rb"].each {|file|
        require file
      }
end

しかし、私はそれが本当に自然だとは思いません。そして、フォルダに入れるauth_provider.rbと のinitializers/authcaller.rbに読み込まれているように見えるauth_provider.rbので、いくつか取得namespace errorします(ファイルはアルファベット順に読み込まれると思います)。auth_provider.rbでは、より簡単な方法でbeforeをロードするにはどうすればよいcaller.rbでしょうか? initializers/0_auth最初にロードするためにフォルダを作成する必要がありますか? (ちなみに、この構成をモジュール化し、残りの「適切な」Rails アプリ構成変数宣言から明確に分離しておく必要があります)

4

1 に答える 1

1

イニシャライザの順序が重要な場合は、適切な名前を付ける必要があります (アルファベット順に適用されます)。これに関する Rails ガイド ( http://guides.rubyonrails.org/configuring.html#using-initializer-files ) は、数値を使用することを提案しているため、提案したようなことを行います。

01_auth_provider.rb
02_caller.rb
...

実際には良い方法です。

于 2013-08-20T18:09:41.457 に答える