我有疑问:
MyModel.includes(:line_items).where("line_items.is_deleted = ?", false).where("line_items.is_verified = ?", false).references(:line_items).average("age(line_items.created_at)")
我正试图通过line_item
片段获得这些average("age(line_items.created_at)")
记录在数据库中的平均时间。这是返回一个BigDecimal,我不知道该怎么办,有没有办法让它返回一个间隔?
答案 0 :(得分:0)
有一些方法可以从Postgresql间隔列返回ActiveSupport::Duration
,我怀疑你没有获得ISO 8601间隔,因为average
需要数字响应。您可能希望在结果上调用.seconds
将其转换为ActiveSupport::Duration
:
average_age = MyModel.average('age(line_items.created_at)')
average_age.seconds.class #=> ActiveSupport::Duration