繁体   English   中英

在YAML文件中哈希?

[英]Hash inside YAML file?

我想在我正在使用以下命令解析的YAML文件中包含一个哈希和列表:

APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")

我的YAML文件如下所示:

feeds: [{:url => 'http://www.google.com', :label => 'default'}]

但这似乎不起作用。 我怎么去实现这样的事情呢?

谢谢,Yuval


编辑:对不起,伙计们。 我仍然不清楚如何做到这一点,我怀疑这部分是由于我有些模糊的措辞。 在这里问了一个更好的,更广泛的问题。 谢谢!

你可以这样标记它

feeds:
 - 
  url: 'http://www.google.com'
  label: 'default'

注意间距在这里很重要。 “ - ”必须由单个空格(不是制表符)缩进,后跟单个空格。 并且urllabel必须缩进两个空格(也不是制表符)。

此外,这可能会有所帮助: http//www.yaml.org/YAML_for_ruby.html

天籁鱼的答案可能在技术上是正确的,但他建议在一条线的末端使用一个空白区域。 这容易出错,不是一个好习惯!

我就是这样做的:

使用以下内容创建settings.yaml文件:

---
feeds:
  :url: 'http://www.google.com'
  :label: 'default'

这将在加载YAML文件后创建以下哈希:

irb(main):001:0> require 'yaml'
=> true
irb(main):002:0> YAML.load_file('settings.yaml')
=> {"feeds"=>{:url=>"http://www.google.com", :label=>"default"}}
irb(main):003:0> 

在这个例子中,我也使用符号,因为这似乎是在Ruby中存储Ruby密钥的首选方式。

老问题,但因为我在一个类似的地方...像贾斯帕指出的那样,Ceilingfish的答案是正确的。 但你也可以这样做

feeds:
 - url: 'http://www.google.com'
   label: 'default'

避免在破折号后依赖尾随空格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM