2013-06-18 19 views
65

Próbuję przechowywać niektóre zmienne konfiguracyjne w yaml reprezentowane jako tablica asocjacyjna aka słownik. Oto jak to zrobiłem:Jak utworzyć listę tablic asocjacyjnych w yaml

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

produkować ten wyjątek, gdy próbuję analizować go z moich ROR plików startowych:

niezdefiniowanych metoda `symbolize_keys” do zera: NilClass

Oto jak init, to:

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

Chyba moja składnia yaml jest złe, to jak to napisać poprawnie?

+2

nie widzę odcinki szyn envs w YAML –

Odpowiedz

138

Twój YAML wygląda w porządku, czy można skonfigurować tablicę skrótów takiego:

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

która załaduje jak następującej hash:

{"content_prices"=>[ 
    {"country"=>"AU", "price"=>6990000}, 
    {"country"=>"AT", "price"=>4990000}, 
    {"country"=>"BE", "price"=>4990000}]} 

Ale to wciąż nie daje wszelkie odniesienia do Rails.env w głównym haszowaniu. Problem wydaje się być tym, czego oczekuje się w haszowaniu, a nie w formacie YAML.

10

Nie na szynach, ale na Symfony2 php, musiałem skonfigurować plik yml takiego:

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

Jest to problem z parsera symfony nie przestrzega specyfikacji list, chyba że po kresce – dreftymac

+0

@dreftymac jest teraz poprawiony ten problem? Czy możesz podać link do raportu o błędzie? – marcv

+0

@ marcv, jeśli moja pamięć służy mi poprawnie zostało naprawione – dreftymac

Powiązane problemy