2012-03-27 3 views
5

완료된 두 날짜 사이의 모든 레코드를 계산하려고합니다. 이는 created_at 필드가 start_date와 end_date 사이에 있고 finished_at 필드가 null이 아님을 의미합니다.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

+0

@ gayavat Squeel이 기능 간을 지원하지 않는다고 생각하므로 Record.count {(created_at > start_date) & (created_at dcarneiro

답변

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

관련 문제