【发布时间】:2020-05-25 05:15:42
【问题描述】:
假设我有这些记录,其中r_years 可以有任意数量的年份键:
Item.select('id','name','r_years').where(name:"N1")
...
"id" => 1, "name" => "N1", "r_years" => {"year2020" => "1","year2021" => "2", ...}
"id" => 2, "name" => "N1", "r_years" => {"year2020" => "2","year2021" => "3", ...}
...
我怎样才能得到 r_years 值的总和,对于每年的键,像这样:
@r_years_sum = {"year2020" => "3","year2021" => "5", ...}
【问题讨论】:
-
这是查询的结果,还是您正在做一些转换?
r_years是否存储哈希值? -
是的,这是 activerecord 查询的结果(看起来像 AwesomePrint)。 r_years 存储带有年份值的哈希(它是一个序列化的哈希列)
-
旁注:从数据库返回的数字数据确实是 strings 非常清楚地表明设计不佳。
标签: ruby-on-rails ruby activerecord hash