Settingslogic缺少设置错误

时间:2011-06-13 18:55:01

标签: ruby-on-rails ruby yaml settingslogic

我的Rails应用程序中的Settingslogic出现了一个奇怪的问题。

我在config / application.yml中有这个:

defaults: &defaults
    redis:
        host: localhost
        port: 6379

development:
    <<: *defaults

    session_key: "_app_development"
    session_secret: "blah_blah_blah"

test:
    <<: *defaults

    session_key: "_app_test"
    session_secret: "blah_blah_blah"

,这在settings.rb中:

class Settings < Settingslogic
    source "#{Rails.root}/config/application.yml"

    namespace Rails.env
end

当我尝试运行“rails server”或“rails console”时 Settingslogic在sesssion_secret上引发了MissingSetting错误。

C:/Ruby/1.9.2/lib/ruby/gems/1.9.1/gems/settingslogic-2.0.6/lib/settingslogic.rb:
117:in `method_missing': Missing setting 'session_secret'
in path-to-app/config/application.yml (Settingslogic::MissingSetting).

我在secret_token.rb初始化程序中引用了session_secret。 但是,我也在我的应用程序中使用Resque,并且在secret_token.rb之前加载初始化程序 并且可以访问Redis设置......

此外,如果我取出默认值部分并复制值 到开发和测试部分Rails将启动。

像这样:

development:
    redis:
        host: localhost
        port: 6379

    session_key: "_app_development"
    session_secret: "blah_blah_blah"

test:
    redis:
        host: localhost
        port: 6379

    session_key: "_app_test"
    session_secret: "blah_blah_blah"

任何人都知道为什么会发生这种情况以及如何解决这个问题?

0 个答案:

没有答案