2017-06-26 4 views
1

Ich habe Probleme beim Laden benutzerdefinierter Konfigurationsdaten aus einer YML-Datei. Ich habe mir ein paar Ressourcen angeschaut und kann damit scheinbar nichts erreichen.Benutzerdefinierte YAML-Konfiguration in Schienen funktioniert nicht

Wenn ich versuche, einige benutzerdefinierte Einstellungen aus der Yml-Datei zu laden, erhalte ich einen leeren Hash.

mein application.rb enthält:

config.myapp = config_for(:myapp) 

mein myapp.yml enthält:

default: &default 
    emails: 
    support: [email protected] 
    marketing: [email protected] 
    address: 123 Test lane 

production: 
    <<: *default 

development: 
    <<: *default 

test: 
    <<: *default 

Als ich nennen: Rails.configuration.myapp

ich:

{} 

Irgendwelche Gedanken, was das Problem sein könnte?

Dank

+0

Nichts ist falsch mit Ihrem Yaml, so muss es Schienen Konfiguration sein, kann Ihnen nicht damit helfen, ich bin ein Sinatra-Mann. Muss die Erweiterung .yml oder .yaml sein? – peter

+0

Ihre Datei 'myapp.yml' muss sich im Ordner' config/'befinden, wie [doc spezifizieren] (https://apidock.com/rails/Rails/Application/config_for). –

+0

Ich überprüft und doppelt überprüft und es ist in der Config-Ordner :) – rubyist

Antwort

1

Es ist etwas, bekommt mit dem Lebenszyklus des Application-Objekts zu tun ist und wo Ihr config.myapp = config_for(:myapp) Anruf sitzt.

Also versuchte ich es vor Ort und löste dieses Problem, indem es in einem config.before_initialize Callback-Block setzen: ist dies in meiner config/application.rb Datei

config.before_initialize do 
    config.myapp = config_for(:myapp) 
end 

und dann in Schienen Konsole Rails.application.config.myapp korrekt die Config aus analysiert Dumps Yml.

Verwandte Themen