2012-03-06 2 views
0

나는 'StatementSales'모델에 다음 합계/그룹 메소드를 작성했으며 모든 유효한 db 항목에 대해 합계를 산출하는 순간 결과를 날짜별로 제한 할 수 있기를 원합니다. 내 견해로는 '일주일, 한 달, 3 개월, 1 년'등에 대한 링크를 제공하고 이상적으로는 아래의 방법으로 전달하는 것이 좋습니다. 어떻게 접근해야합니까?날짜 제약 조건을 가진 합계/그룹화?

def self.total_units 
sum(:units) 
end 

def self.units_by_store 
group(:store).sum(:units) 
end 

def self.units_by_territory 
group(:territory).sum(:units) 
end 

def self.units_by_upc 
group(:upc).sum(:units) 
end 

미리 감사드립니다.

답변

0

당신은 사용할 수는

scope :between_dates, lambda { |start_date, end_date| where("date < #{end_date} AND date >= #{start_date}") } 
scope :one_week, between_dates(Date.today, Date.today + 7.days) 

는 그런 다음

def self.total_units 
    self.one_week.sum(:units) 
end 
+0

감사를 할 수있는 수업이 추가 스코프! 그냥이 시도했다지만 SQLite 테이블 (예 : 2455958.5 형식으로 날짜) 및 결과 따라서 일부 이상한 날짜를 다시 받고있어 보인다. 일부 더미 데이터를 db에 직접 입력했지만 UI를 통해 추가되었거나 가져온 다른 테이블에서는 괜찮은 것처럼 보입니다. – Raoot

관련 문제