[ruby-on-rails] yaml에서 연관 배열 목록을 만드는 방법

연관 배열 일명 사전으로 표시된 yaml에 일부 구성 변수를 저장하려고합니다. 내가 한 방법은 다음과 같습니다.

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

내 ROR 초기화 파일에서 구문 분석하려고 할 때 예외가 발생합니다.

정의되지 않은 메소드`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의 형식이 아니라 해시에있을 것으로 예상되는 것 같습니다.


답변

레일이 아니라 Symfony2 php에서 다음과 같이 yml 파일을 구성해야했습니다.

content_prices :
  -
    국가 : AU
    가격 : 6990000
  -
    국가 : AT
    가격 : 4990000
  -
    국가 : BE
    가격 : 4990000


답변

누군가가 동적 키를 사용하려는 경우에도 가능합니다.

AppBundle\Service\MailerService:
    lazy: false
    arguments:
      $defaultFrom:
        '%mailer_user%': '%mailer_name%'


답변