我试图将一些配置变量存储在yaml中,用关联数组或字典表示.

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

当我试图从ROR init文件中解析它时,会产生一个异常:

未定义的方法"符号化密钥!"零:零级

以下是我如何初始化它:

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的格式.

Ruby-on-rails相关问答推荐

Rails turbo流只更新页面上的一个元素

安装特定版本的Ruby时出现问题(OpenSSL问题)

如何配置我的 Rails 应用程序(使用 Puma)以通过 HTTPS 提供服务?

ActiveRecord 包括.指定包含的列

Rails - 如何从 http://example.com 重定向到 https://www.example.com

有没有办法在 Rails 3.1 中检测用户代理

如何从 Rails 路由中删除控制器名称?

为什么使用 HTTP PUT 和 DELETE 方法而不是 POST?

是否有与 PHP 的 isset() 等效的 Rails?

Rails - 从日期和时间戳获取日期

如何在 Windows 上为 Ruby 安装 sqlite3?

如何独立测试模型的回调方法?

如何显示 RSpec 测试生成的 SQL 查询日志(log)?

Ruby 和 Ruby on Rails 离线 API 文档

Rails - 具有空数组的强参数

Groovy/Grails :: Ruby/Rails :: 2011 框架状态

导轨链接到:远程

link_to 将参数与 url 一起发送并在目标页面上抓取它们

通过get in rails传递参数数组

Ruby on Rails:如何在 select_tag 中使用默认占位符?