2014-02-25 19 views
0

我有一個Rails模型,我想從中查詢count和最後的updated_at時間戳。ActiveRecord:在同一個查詢中獲得2個計算的好方法

目前我的代碼是這樣的:pluck('COUNT(*)', 'MAX(updated_at)'),這有點難看,因爲它返回一個數組數組,我一直認爲這是一個更好的方法。

任何想法?

+1

'pluck'將屬性名稱作爲它的參數..對吧?你如何提供'count(*)'和另一個? –

+0

你能告訴我邏輯,你想達到什麼目的? –

+0

它會爲你工作嗎? 'find(:all,:select =>「count(*),max('updated_at')」,:group =>'updated_at')' –

回答

0

您可以查詢此爲這樣:

model_stats = Model.select("count(*), max(updated_at) as last_update").first 

model_stats將是一個Model只有屬性countlast_update

+0

這似乎會生成正確的SQL,但它只是返回一個空的'Model',沒有新屬性 – deiga

+0

When我在我身上測試了它似乎能夠工作 - 但它不會將屬性添加到模型上的屬性列表中,因此它不會正確檢查,但您仍然可以直接調用它們... – mikeryz

+0

嗯我無法給他們打電話。你是模型的訪問者還是其他東西? – deiga

相關問題