【问题标题】:Having trouble with puts from .yml file.yml 文件中的 put 遇到问题
【发布时间】:2015-03-20 03:26:12
【问题描述】:

我有一个 YAML 文件,其中包含:

---
:feeds:
  -
    title: "Breaking News"
    url: "http://www.nasa.gov/rss/dyn/breaking_news.rss"
  -
    title: "Education News"
    url: "http://www.nasa.gov/rss/dyn/educationnews.rss"
  -
    title: "Space Station News"
    url: "http://www.nasa.gov/rss/dyn/shuttle_station.rss"

我的 ruby​​ 文件包括:

require 'yaml'
config = YAML.load_file('settings.yml')
feeds = config[:feeds]


feeds.each do |entry|
  puts "Title: #{entry[:title]}"
end

例如,我希望看到的是“标题:突发新闻”。然而,输出只是简单地输入“标题:”。我相信我的哈希有一个错误,但已经尝试了很多事情,现在只是在猜测。我在这里搜索过类似的问题,但找不到任何相关内容。可能是因为这是我的一个简单的误解。

【问题讨论】:

    标签: ruby yaml


    【解决方案1】:

    内部散列的键是字符串,而不是符号。您正在尝试查找不存在的entry[:title]——您应该使用entry['title']

    feeds.each do |entry|
      puts "Title: #{entry['title']}"
    end
    

    或者,您可以在 yaml 中使用符号(您已经为 :feeds 键执行此操作):

    ---
    :feeds:
      -
        :title: "Breaking News"
        :url: "http://www.nasa.gov/rss/dyn/breaking_news.rss"
      -
        :title: "Education News"
        :url: "http://www.nasa.gov/rss/dyn/educationnews.rss"
      -
        :title: "Space Station News"
        :url: "http://www.nasa.gov/rss/dyn/shuttle_station.rss"
    

    【讨论】:

    • 谢谢,我明白了。
    猜你喜欢
    • 2021-05-19
    • 2023-03-29
    • 2022-07-08
    • 2017-07-24
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多