从PG Gem返回值中删除列名称

时间:2013-11-11 06:28:53

标签: ruby postgresql pg

我正在尝试使用以下方法从Postgres DB中检索URL列表...

def get_urls(site_id)
  conn = PGconn.open(:dbname => 'my_listings')
  res = conn.exec("SELECT url_list FROM listings WHERE site_id=#{site_id}")
  array = []
  count = 0
  res.each do |row|
    row.each do |column|
      array[count] = column
      count += 1
    end
  end
  array
end

然后,当我运行代码时......

my_array = get_urls(3)
my_array[0]

我得到了

的返回值
 => ["url_list", "http://www.somesite.com"] 

所以它给了我列名和数据值,我试图用这些值填充数组。

2 个答案:

答案 0 :(得分:2)

这是最简单的方法:

array = res.collect{|row| row['url_list']}

答案 1 :(得分:1)

可在此处找到文档:http://deveiate.org/code/pg/PG/Result.html

正确的方法是调用values方法:

def get_urls(site_id)
  conn = PGconn.open(:dbname => 'my_listings')
  res  = conn.exec("SELECT url_list FROM listings WHERE site_id=#{site_id}")
  conn.close # Close the connection again.
  res.values # Return a list of values.
end