Ruby on rails 在rails应用程序初始化之前设置配置变量
我正在设置一些全局变量(用于设置Ruby on rails 在rails应用程序初始化之前设置配置变量,ruby-on-rails,ruby,namespaces,initialization,Ruby On Rails,Ruby,Namespaces,Initialization,我正在设置一些全局变量(用于设置designegem授权定制)。因此,我将一些文件auth\u provider.rb放在config/auth文件夹中,在那里我声明了一些模块MyAuth(在一些MyAuth.rb文件中)。问题是当这个模块被initializers文件夹中的某个文件调用时,调用它caller.rb,因此我必须放入application.rb文件 config.before_initialize do Dir["#{config.root}/config/auth/*
designe
gem授权定制)。因此,我将一些文件auth\u provider.rb
放在config/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\u provider.rb
放在initializers/auth
文件夹中,那么caller.rb
似乎是在auth\u provider.rb
之前加载的,因此我得到了一些名称空间错误
(我假定文件是按字母顺序加载的)。那么,如何以更直接的方式在调用方.rb之前加载auth_provider.rb
?我是否应该创建一些初始值设定项/0_auth
文件夹以便首先加载?(顺便说一句,我希望此配置模块化,并将其与“正确的”rails应用程序配置变量声明的其余部分明确分开)如果初始值设定项的顺序很重要,则必须对其进行适当命名(它们按字母顺序应用)。关于这一点的Rails指南()建议使用数字,因此要像您建议的那样:
01_auth_provider.rb
02_caller.rb
...
实际上,这是一个很好的方法。如果初始值设定项的顺序很重要,您必须正确地命名它们(它们按字母顺序排列)。关于这一点的Rails指南()建议使用数字,因此要像您建议的那样:
01_auth_provider.rb
02_caller.rb
...
这其实是个好办法。谢谢!你认为还有其他方法可以做到吗?你认为我在
应用程序.rb中调用一些加载时做了什么?你为什么要寻找其他方法?即使您手动导入它们(通过自定义脚本),您也必须自己定义订单。使用文件名可能看起来是任意的,但是数字让人很容易评估首先调用哪个脚本,只需查看目录中的文件即可。谢谢!你认为还有其他方法可以做到吗?你认为我在应用程序.rb中调用一些加载时做了什么?你为什么要寻找其他方法?即使您手动导入它们(通过自定义脚本),您也必须自己定义订单。为此使用文件名可能看起来是任意的,但是这些数字使人很容易评估首先调用哪个脚本,只需查看目录中的文件即可。