Rails自定义配置返回空哈希

hat*_*enn 3 configuration ruby-on-rails ruby-on-rails-4

我正在使用Rails 4,我想使用自定义配置功能,如下所述:

http://guides.rubyonrails.org/configuring.html#custom-configuration

我创建了以下YAML文件(config\prefs.yml):

development:
  password: test
Run Code Online (Sandbox Code Playgroud)

我把它添加到我的config/application.rb:

module MyApp
  class Application < Rails::Application
    # ...

    config.x.prefs = Rails.application.config_for(:prefs)
  end
end
Run Code Online (Sandbox Code Playgroud)

当我进入rails控制台时,我得到了这个:

> Rails.configuration.x.prefs
=> {}
Run Code Online (Sandbox Code Playgroud)

为什么Rails没有正确加载配置?

Omn*_*zer 7

我猜是以下几点:

  • 你有捆绑的Spring gem.
  • 您的自定义配置以某种方式在当前状态下初始化.(即为空)
  • config\prefs.yml不被跟踪春天,所以它不知道环境需要重新加载.

如果我是正确的,您只需要使用以下代码创建初始化程序:

Spring.watch "config/prefs.yml"
Run Code Online (Sandbox Code Playgroud)

当然,每次更改配置时,您都必须重新加载控制台.我已经成功地重现并解决了你的问题,所以我希望这会有所帮助.