ruby-on-rails - 嵌套哈希解释为数组

标签 ruby-on-rails ruby arrays hash

我使用散列来存储解析网站所需的一些数据,包括 URL 和使用 Nokogiri 解析网站标题的具体说明。然而,我使用的嵌套哈希被解释为一个数组。

webSite = {  :everdoH =>  
                        { :url => "http://www.everardoherrera.com/" ,
                          :instruc=> Proc.new PageToParse.css('.contentheading').css('.contentpagetitle')} 
           }

如果我这样做:

puts webSite.class
webSite.each {|aSite| puts aSite.class }

我明白了:

>> Hash
>> Array

因此我不能使用任何哈希索引属性。

知道为什么我在嵌套部分没有得到类类型 Hash 吗?

最佳答案

因为 Hash#each , Hash#each_pair传递键值对(数组)作为参数。

webSite = {  :everdoH =>
  { :url => "http://www.everardoherrera.com/" ,
    :instruc=> 'blah'
  }
}
webSite.each { |aSite| p aSite }
# => [:everdoH, {:url=>"http://www.everardoherrera.com/", :instruc=>"blah"}]

尝试以下方法之一(打印值类,而不是键值对):

webSite.each {|aSite| puts aSite[1].class }
# => Hash
webSite.each {|key, aSite| puts aSite.class }
# => Hash
webSite.each_value {|aSite| puts aSite.class }
# => Hash

关于ruby-on-rails - 嵌套哈希解释为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21978148/

相关文章:

ruby-on-rails - 使用 ActiveSupport::Concern 功能时,如何通过将 "nested"模块包含为该类的实例方法来将方法添加到类中?

ruby-on-rails - 如何将 Twitter Bootstrap 安装到我的 rails

javascript - 将数组转换为字符串并获取子字符串

ruby - 类型错误:无法将 Builder::XmlMarkup 转换为数组

ruby-on-rails - rails : simple_for_for time with 12 hour format

java - 结尾逻辑错误

javascript - 按最接近的值对数组进行排序

ruby-on-rails - 如何在 URU 中添加新的 Ruby 环境?

ruby-on-rails - Rails 3 回形针 mime 类型 - Office 2007

ruby-on-rails - Rails "Show"路线