2011-05-03 2 views
0

나는 주문한 화면이 있으며 신속하고 쉬운보고를 위해 몇 가지 조사를 보여 드리고자합니다.특정 기간 동안 결과를 어떻게 계산합니까?

나는 '나는 또한 예를 들어'오늘 ','어제 '에 대한 특정 날짜 범위에서 몇 가지 수를 보여 드리고자합니다

<%= Order.count(:all) %> 

을 수행하여 내가 모든 주문의 수를 얻을 수 있음을 일했다 이번 주 ','이번 달 ','지난 달 ','올해 '등

저는 레일스에 최근에 와서 최근에 PHP에서의 도약을 통해 레일스에 익숙해졌습니다. 일하는 것. 우리는 Rails 3과 ActiveRecord를 사용하여 DB를 쿼리합니다. 이것을 성취하는 가장 좋은 방법은 무엇입니까?

감사합니다.

답변

1

우선,보기에서 파인더 (또는 논리)를 사용하면 안됩니다. 대신 count를 주문 모델의 클래스 메소드로 넣거나 스코프로 만드십시오. 또한, 레일 3, 그것은 (당신의 카운트 같은) 새로운 구문을 사용하는 것이 좋습니다 : 이제

Order.find(...).all 

을, 당신은 당신이 원하는 일을하는 레일 모델의 created_at 속성을 사용할 수 있습니다. 그런 다음 다음과 같이하면됩니다.

2

이 예제를 살펴보십시오. count 메소드에 조건을 전달할 수 있습니다.

Person.count(:conditions => "age > 26") 

Order.count(:conditions => "created_at BETWEEN '2010-09-29' AND '2010-11-30'") 

examples from the API documentation

관련 문제