2016-07-07 15 views
0

我有查詢:軌平均查詢返回的時間間隔,而不是大小數

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

「間隔」是什麼意思? – nicholas79171

+0

@ nicholas79171在Postgres中有一個返回類型叫間隔。如果我在pgadmin中運行相同的查詢,我會返回一個間隔 – Deekor

回答

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