使用变量存储来自gem的数据

时间:2014-06-06 15:01:42

标签: ruby-on-rails ruby rubygems rails-engines

我有一个带有自己引擎的小型Rails应用程序。每个引擎都应该加载一个应该由Rails应用程序使用的yaml文件。我认为最好的方法是将每个gem的yaml文件存储到初始化器中的常量中,这将使这些常量因此可用于Rails应用程序的文件。现在我有更多的宝石会做同样的事情。有没有一种方法可以在Rails应用程序中初始化一个数组(作为我想象的全局),可以通过从属gems访问并将这些文件路径(常量)添加到自身。然后我可以迭代这个全局而不必调用每个gem的初始化常量。究竟哪个地方最适合放置这样一个常数?它需要在gem初始化之前初始化。

1 个答案:

答案 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')