Ruby on rails 如何获取self.read_属性以使用聚合?
我有:Ruby on rails 如何获取self.read_属性以使用聚合?,ruby-on-rails,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3.2,我有: class Vehicle这可能是因为您的Vehicle是一个ActiveRelation对象,对其调用sum将使用sql查询(而不是使用您定义的方法)计算sum 将生成查询 class Vehicle << ActiveRecord::Base def odometer metric ? self.read_attribute(:odometer).miles.to.kilometers : self.read_attribute(:odometer) e
class Vehicle这可能是因为您的Vehicle
是一个ActiveRelation对象,对其调用sum将使用sql查询(而不是使用您定义的方法)计算sum
将生成查询
class Vehicle << ActiveRecord::Base
def odometer
metric ? self.read_attribute(:odometer).miles.to.kilometers : self.read_attribute(:odometer)
end
end
如果希望调用方法,请执行以下操作
select sum(vehicles.odometer) from vehicles where ...
你的解决方案奏效了。您知道在哪里可以找到有关使用“&”的文档吗?它似乎不适用于车辆。最大(&:速度)
车辆。sum(&:里程表)
是编写车辆的另一种方式。sum{v | v.里程表}
。您可以在这里找到一些解释->average
和maximum
不起作用,因为它们没有在Enumerable中定义
vehicles.sum(&:odometer)