Ruby,挖掘哈希

时间:2013-12-19 07:03:17

标签: ruby-on-rails ruby

是数组的哈希

relativebase = s.pluck(:base_point).inject(:+) + s.pluck(:distance_point).inject(:+) + s.pluck(:speed_point).inject(:+) + s.pluck(:frequency_point).inject(:+) + s.pluck(:quality_point).inject(:+)

这是我想在一个查询中调用数据库四次。我怎么能得到这个。

2 个答案:

答案 0 :(得分:0)

类似的东西:

User.select(:a, :b, :c, :d).all.inject([]) { |res, e| res << e.a; res << e.b; res << e.c; res << e.d; res }

答案 1 :(得分:0)

pluck中有4个supports个多个名字:

relativebase = s.pluck(:base_point, 
                       :distance_point,
                       :speed_point,
                       :frequency_point).inject(0) do |sum, (bp, dp, sp, fp)|
                  sum + bp + dp + sp + fp
               end

实际上我个人认为计算数据库中的总和可能更好,但我不确定如何在rails中优雅地做到这一点:

SELECT SUM(base_point + distance_point + speed_point + frequency_point) FROM s