J'essaie de stocker des variables de configuration dans yaml, représentées par un tableau associatif, également appelé dictionnaire. Voici comment j'ai fait:
content_prices:
- {country: AU, price: 6990000}
- {country: AT, price: 4990000}
- {country: BE, price: 4990000}
Cela produit une exception lorsque j'essaie de l'analyser à partir de mes fichiers init ROR:
méthode non définie `symbolize_keys! ' pour nil: NilClass
Voici comment je l’initie:
Config = YAML.load_file("#{Rails.root}/config/prices.yml")[Rails.env].symbolize_keys!
Je suppose que ma syntaxe yaml est fausse, alors comment l'écrire correctement?
Votre YAML a l'air bien, ou vous pouvez configurer un tableau de hachages comme ceci:
content_prices:
- country: AU
price: 6990000
- country: AT
price: 4990000
- country: BE
price: 4990000
Qui va charger comme le hash suivant:
{"content_prices"=>[
{"country"=>"AU", "price"=>6990000},
{"country"=>"AT", "price"=>4990000},
{"country"=>"BE", "price"=>4990000}]}
Mais cela ne vous donne toujours aucune référence au Rails.env
dans le hachage principal. Le problème semble être ce que vous vous attendez à être dans votre hash plutôt que le format du YAML.
Pas sur Rails, mais sur Symfony2 php, j'ai dû configurer le fichier yml comme ceci:
content_prices: - pays: AU prix: 6990000 - pays: AU prix: 4990000 - Pays: BE Prix: 4990000
Juste au cas où quelqu'un voudrait utiliser des clés dynamiques, il est également possible:
AppBundle\Service\MailerService:
lazy: false
arguments:
$defaultFrom:
'%mailer_user%': '%mailer_name%'