連想配列または辞書として表されるyamlにいくつかの設定変数を保存しようとしています。ここに私がやった方法があります:
content_prices:
- {country: AU, price: 6990000}
- {country: AT, price: 4990000}
- {country: BE, price: 4990000}
ROR initファイルから解析しようとすると、例外が発生します。
未定義のメソッド `symbolize_keys! ' nil:NilClassの場合
ここに私がそれを初期化する方法があります:
Config = YAML.load_file("#{Rails.root}/config/prices.yml")[Rails.env].symbolize_keys!
私のyaml構文が間違っていると思いますが、それを正しく書く方法は?
あなたのYAMLは大丈夫に見えるか、次のようにハッシュの配列を設定できます:
content_prices:
- country: AU
price: 6990000
- country: AT
price: 4990000
- country: BE
price: 4990000
次のハッシュとしてロードされます:
{"content_prices"=>[
{"country"=>"AU", "price"=>6990000},
{"country"=>"AT", "price"=>4990000},
{"country"=>"BE", "price"=>4990000}]}
しかし、それでもメインハッシュのRails.env
への参照は得られません。問題は、YAMLの形式ではなく、あなたがハッシュに入れることを期待しているもののようです。
Railsではなく、Symfony2 phpで、ymlファイルを次のように設定する必要がありました。
content_prices: - 国:AU 価格:6990000 - 国:AT 価格: 4990000 - 国:BE 価格:4990000
誰かが動的キーを使用したい場合に備えて、次のことも可能です。
AppBundle\Service\MailerService:
lazy: false
arguments:
$defaultFrom:
'%mailer_user%': '%mailer_name%'