ruby-on-rails - 在 Rails 应用程序初始化之前设置配置变量

标签 ruby-on-rails ruby namespaces initialization

我正在设置一些全局变量(用于设置 devise gem 授权定制)。所以,我放了一些文件 auth_provider.rbconfig/auth我在其中声明一些模块 MyAuth 的文件夹(在一些 myauth.rb 文件中)。问题是当这个模块被 initializers 中的某个文件调用时文件夹,称之为 caller.rb ,所以我不得不输入 application.rb文件

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

但我觉得这不是很自然。而且,如果我把 auth_provider.rbinitializers/auth文件夹,然后 caller.rb之前好像加载过auth_provider.rb ,所以我得到了一些 namespace error (我假设文件是​​按字母顺序加载的)。那么如何加载 auth_provider.rb之前 caller.rb以更直接的方式?我应该创建一些 initializers/0_auth文件夹以便首先加载? (顺便说一句,我希望这个配置模块化,并使其与“正确”rails 应用程序配置变量声明的其余部分明确分开)

最佳答案

如果您的初始化程序的顺序很重要,您必须适本地命名它们(它们按字母顺序应用)。关于这个的 Rails 指南( http://guides.rubyonrails.org/configuring.html#using-initializer-files )建议使用数字,所以做一些你建议的事情:

01_auth_provider.rb
02_caller.rb
...

其实是个好办法。

关于ruby-on-rails - 在 Rails 应用程序初始化之前设置配置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18341003/

相关文章:

ruby-on-rails - 堆栈级别太深,有比 read_attribute 更好的东西吗?

ruby-on-rails - 接受嵌套属性 :destroy_if

ruby-on-rails - 使用多个 SASS 文件

ruby-on-rails - 将配置存储在 Rails 之类的文件中

ruby - 了解 Ruby Enumerable#map(具有更复杂的 block )

c# - 我不能使用 system.windows.control 命名空间

ruby-on-rails - 当我从终端断开连接时,乘客 + nginx 失败

ruby - 具有取决于键的默认值的散列

clojure 需要带括号的作品

php - 将导入的类名转换为完全限定的类名