2012-03-27 68 views
5

我正在計算完成的兩個日期之間的所有記錄。這意味着created_at字段介於start_date和end_date之間,finished_at字段不爲空。用Rails中的多個條件計算

我可以使用下面的表達式來獲得未完成的記錄:

Record.count(:all, :conditions => {:created_at => start_date..end_date, :finished_at => nil }) 

有沒有類似的方法來計算,其中在成品不爲零的記錄?

+0

您可以使用一些寶石,如Squeel,meta-where。看到http://stackoverflow.com/questions/4252349/rail-3-where-condition-using-not-null – gayavat 2012-03-27 10:50:52

+0

@gayavat我不認爲Squeel支持功能之間,所以我必須做Record.count {(created_at > start_date)&(created_at dcarneiro 2012-03-27 11:10:26

回答

7

這應該工作得很好,除非我失去了一些東西。

Record.where(:created_at => start_date..end_date).where('finished_at IS NOT NULL').count 
+0

我結束了與Record.where(「created_at BETWEEN?AND?AND finished_at IS NOT NULL」,start_date,end_date).count保持兩個條件在一起 – dcarneiro 2012-03-28 08:52:02