在 Ruby 的Sequel ORM 中,Dataset
该类有一个all
生成行哈希数组的方法:每一行都是一个以列名作为键的哈希。
例如,给定一个表 T:
a b c
--------------
0 22 "Abe"
1 35 "Betty"
2 58 "Chris"
然后:
ds = DB['select a, b, c from T']
ah = ds.all # Array of row Hashes
应该产生:
[{"a":0,"b":22,"c":"Abe"},{"a":1,"b":35,"c":"Betty"},{"a":2,"b":58,"c":"Chris"}]
是否有一种内置于 Sequel 的方法来生成一个行数组数组,其中每一行都是一个数组,其中每一行中的值按照查询中指定的顺序排列?select_rows
ActiveRecord中的工作原理是怎样的?像这样的东西:
aa = ds.rows # Array of row Arrays
这将产生:
[[0,22,"Abe"],[1,35,"Betty"],[2,58,"Chris"]]
注:表达式:
aa = ds.map { |h| h.values }
生成一个数组数组,但不保证行中值的顺序与原始查询中请求的顺序相匹配。在此示例中,aa
可能如下所示:
[["Abe",0,22],["Betty",1,35],["Chris",2,58]]