У меня странная проблема с 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"
Кто-нибудь знает, почему это происходит и как это исправить?