0

我正在尝试使用以下方法从我的 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"] 

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

4

2 回答 2

2

这是最简单的方法:

array = res.collect{|row| row['url_list']}
于 2013-11-11T06:39:44.947 回答
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
于 2013-11-11T09:18:52.377 回答