96

我正在尝试将一些配置变量存储在 yaml 中,表示为关联数组又名字典。这是我的做法:

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

当我尝试从我的 ROR 初始化文件中解析它时,这会产生一个异常:

未定义的方法`symbolize_keys!对于零:NilClass

这是我的初始化方式:

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

我猜我的 yaml 语法是错误的,那么如何正确编写呢?

4

3 回答 3

179

你的 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 的格式。

于 2013-06-18T16:16:02.417 回答
14

不是在 Rails 上,而是在 Symfony2 php 上,我必须像这样配置 yml 文件:

内容价格:
  -
    国家:澳大利亚
    价格:6990000
  -
    国家:AT
    价格:4990000
  -
    国家:比利时
    价格:4990000
于 2015-06-10T14:43:24.500 回答
0

万一有人想使用动态键,也可以:

AppBundle\Service\MailerService:
    lazy: false
    arguments:
      $defaultFrom:
        '%mailer_user%': '%mailer_name%'
于 2019-04-17T16:21:55.930 回答