ruby on rails-从多维数组中提取哈希值



我正在将HTML解析为一个数组,如下所示。我可以将数据放入数组,然后将数据推入数据库。阵列数据的一行是:

{:address=>"6222 Lodgepole Dr", :members=>["Diana L Dillard", "Kemberly J Williams", "George S Williams Iii"]}

数据库结果为:

Master                 Neighbor                     Name
7545 XYZ Dr     --- - 8283 Southern Watch Pl    --- - - Diana L Dillard - Kemberly J Williams - George S Williams Iii

以下是我的问题:

  1. 如何使Address.create循环只将数组中的第一个成员(在本例中为Diana L Dillard)插入"name"字段,而不是所有名称?理想情况下,我想为第一个字段创建一个字段,然后为所有其他字段创建另一个字段
  2. 为什么在数据中插入这些短划线"---"?我不想要它们

这是我当前的代码:

url = "XYZ"
doc = Nokogiri::HTML(open(url))
results = []
# parse .single tags
doc.css('.single').each do |single_div|
  res = {}
  res[:address] = single_div.at_css('span.address').text
  res[:members] = single_div.css('li.basic_info').collect{|el| el.text.strip}
  results << res
end
results.each do|address|
  puts "#{address}: #{members}"
  Address.create(:neighboradd => "#{address}", :master => '7545 XYZ Dr', :name => "{members}")
end

results.each do |address|
  puts "#{address}: #{members}"
  Address.create(
    :neighboradd => "#{address}",
    :master => '7545 XYZ Dr',
    :name => "{members}"
  )
end

应该是类似的东西

results.each do |res|
  puts "#{res[:address]}: #{res[:members]}"
  Address.create(
    :neighboradd => res[:address],
    :master => '7545 XYZ Dr',
    :name => res[:members].join(', ') # this should be "#{res[members]}"? (with "#")
  )
end

---是因为您使用了:neighboradd的整个哈希。

如果你只想要第一个成员:

    :name => res[:members].first

最新更新