0

我运行如下查询:

 rs = conn.execute("SELECT * FROM fruits WHERE name = 'apple' AND type = 'sweet'" )
  puts "Results = #{rs.inspect}"

这给了我类似的东西

 Results = [{"fruitId"=> 123, "name"=>"apple", "type"=>"sweet" }]

我如何从中得到fruitId?

我试过这个:

   puts "Retrieved fruitId = #{rs['fruitId'] }"

但这会导致错误: [] no implicit conversion of string to integer

我怎样才能得到fruitId?

谢谢

4

2 回答 2

1

它的Array一个Hashes。您可以像这样访问fruitId第一项Array

Results[0]["fruitId"]
#=> 123
于 2013-07-25T17:54:05.433 回答
1

您正在取回一个数组,但您希望哈希能够使用rs['fruitId']. 这就是它抱怨的地方。

尝试这样做:

db = SQLite3::Database.open "test.db"
db.results_as_hash = true

资源:

http://zetcode.com/db/sqliteruby/queries/

http://www.ruby-doc.org/core-2.0/Hash.html

于 2013-07-25T18:01:22.003 回答