我有一个带有自己引擎的小型Rails应用程序。每个引擎都应该加载一个应该由Rails应用程序使用的yaml文件。我认为最好的方法是将每个gem的yaml文件存储到初始化器中的常量中,这将使这些常量因此可用于Rails应用程序的文件。现在我有更多的宝石会做同样的事情。有没有一种方法可以在Rails应用程序中初始化一个数组(作为我想象的全局),可以通过从属gems访问并将这些文件路径(常量)添加到自身。然后我可以迭代这个全局而不必调用每个gem的初始化常量。究竟哪个地方最适合放置这样一个常数?它需要在gem初始化之前初始化。
答案 0 :(得分:1)
看看config/application.rb
。该文件定义了一个可用于设置和获取自定义配置参数的类。尝试这样的东西:
# config/application.rb
module MyApp
class Application < Rails::Application
config.yaml_stuff = {}
end
end
# my_plugin/config/initializers/load_yaml_data.rb
MyApp::Application.config.yaml_suff[:my_plugin] = YAML.load_file('whatever.yml')