2013-06-18 21 views
65

yamlにいくつかの設定変数を保存しようとしています。ここ は、私がやった方法です:私は私のRORのinitファイルからそれを解析しようとすると、yamlで連想配列のリストを作る方法

content_prices:                                                        
    - {country: AU, price: 6990000}                                                    
    - {country: AT, price: 4990000}                                                    
    - {country: BE, price: 4990000} 

この例外を生成します!

未定義のメソッド `symbolize_keys」 nilのために:NilClass

ここでは、私はそれを初期化する方法である:

Config = YAML.load_file("#{Rails.root}/config/prices.yml")[Rails.env].symbolize_keys! 

私はそれを正しく書くためにどのようにして、私のYAML構文が間違っていると思いますか?

+2

私はあなたのYAML –

答えて

138

あなたの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のフォーマットではなく、あなたのハッシュにあると予想されるもののようです。

10
レール上

ないが、Symfony2のPHPの上で、私はこのようなYMLファイルを設定する必要がありました:これはsymfonyのパーサの問題です

 
content_prices: 
    - 
    country: AU 
    price: 6990000 
    - 
    country: AT 
    price: 4990000 
    - 
    country: BE 
    price: 4990000 
+6

にレールENVSのためのセクションが表示されていないが – dreftymac

+0

@dreftymacのダッシュの後に改行がない限り、リストの仕様を尊重しません。バグレポートへのリンクを教えてください。 – marcv

+0

@marcv私の記憶が正しく機能しているかどうかは修正されています – dreftymac