Настройки логической ошибки отсутствуют - PullRequest
0 голосов
/ 13 июня 2011

У меня странная проблема с Settingslogic в моем приложении на Rails.

У меня есть это в 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" или "консоль rails", Settingslogic вызывает ошибку MissingSetting на sesssion_secret.

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).

Я ссылаюсь на session_secret в моем secret_token.rbинициализатор.Тем не менее, я также использую 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"

Кто-нибудь знает, почему это происходит и как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...