Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何使pg gem查询结果符号化?_Ruby_Postgresql - Fatal编程技术网

Ruby 如何使pg gem查询结果符号化?

Ruby 如何使pg gem查询结果符号化?,ruby,postgresql,Ruby,Postgresql,在gem中,我们可以使用此语句将所有查询结果符号化 require 'mysql2' Mysql2::Client.default_query_options.merge!(symbolize_keys: true) DB = Mysql2::Client.new(host: "localhost", username: "benchmarkdbuser", password: 'benchmarkdbpass') DB.select_db('hello_world') res = DB.que

在gem中,我们可以使用此语句将所有查询结果符号化

require 'mysql2'
Mysql2::Client.default_query_options.merge!(symbolize_keys: true)
DB = Mysql2::Client.new(host: "localhost", username: "benchmarkdbuser", password: 'benchmarkdbpass')
DB.select_db('hello_world')
res = DB.query "SELECT id, message FROM Fortune"
rows = res.map { |row| row }
# [{id: 1, message: 'bla'}] --> id and message are symbols, not strings
如何在gem上实现这一点


如果没有本地方式:

h_to_sym = ->(row){ row.keys.each_with_object({}) { |k, o|
  o[k.to_sym] = row[k].is_a?(Hash) ? h_to_sym.(row[k]) : row[k] }
}
p res.map.with_object([]) { |row, h| h << h_to_sym.(row) }
h_to_sym=->(row){row.keys.每个带有{u对象({})的{k,o|
o[k.to_-sym]=第[k]行。第[k]行是?(散列)?第[k]行是第[k]行吗
}
p res.map.带有_对象([]){|行,h | h
h_to_sym = ->(row){ row.keys.each_with_object({}) { |k, o|
  o[k.to_sym] = row[k].is_a?(Hash) ? h_to_sym.(row[k]) : row[k] }
}
p res.map.with_object([]) { |row, h| h << h_to_sym.(row) }