如何将Sequel ORM中的DB.fetch哈希输出与现有数组进行比较?

时间:2014-05-05 10:44:24

标签: ruby sequel

如何将DB.fetch的哈希输出与输入数组进行比较?

e.g。如果在来自DB.fetch的散列输出的数据集上,则 dataset.each{|r| p r.values}为每一行输出数组,但是如果我想存储这些数组并比较这些数组并且还在{}范围之外运行现有数组的计算呢?

1 个答案:

答案 0 :(得分:0)

你的dataset.each{|r| p r.values}返回的不是数组,它会打印出来。

要获取包含数组的数组,您可以使用:

DB[:yourtab].all.map{|v|v.values}

更完整的例子:

require 'sequel'
DB = Sequel.sqlite
DB.create_table(:tab1){
  primary_key :id
  field :a, :type => :nvarchar, :size => 10
  field :b, :type => :nvarchar, :size => 10
}

DB[:tab1].insert(:a => 'a1', :b => 'b1')
DB[:tab1].insert(:a => 'a2', :b => 'b2')
DB[:tab1].insert(:a => 'a3', :b => 'b3')

result = DB[:tab1].all.map{|v|v.values}
p result

结果是:

[[1, "a1", "b1"], [2, "a2", "b2"], [3, "a3", "b3"]]