Как получить количество результатов за определенный период времени? - PullRequest
0 голосов
/ 03 мая 2011

У меня есть экран с нашими заказами, и я хочу показать некоторые показатели для быстрой и простой отчетности.

Я выяснил, что могу получить счет всех заказов, выполнив

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

Я также хотел бы показать некоторые подсчеты из определенных диапазонов дат, например, «сегодня», «вчера», «на этой неделе», «в этом месяце», «в прошлом месяце», «в этом году» и т. Д.

Я очень новичок в рельсах, недавно перешагнув через PHP, поэтому я все еще привыкаю к ​​тому, как работает Rails.Мы используем Rails 3 и ActiveRecord для запросов к БД.Как лучше всего добиться этого?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 мая 2011

Посмотрите на этот пример.Вы можете передать условия методу подсчета.

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

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

Больше примеров из документации API

1 голос
/ 03 мая 2011

Прежде всего, вы не должны использовать искатели (или любую логику) внутри ваших представлений.Вместо этого поместите count в качестве метода класса для вашей модели заказа или сделайте его областью действия.Более того, в Rails 3 лучше использовать новый синтаксис (такой же для вашего количества):

Order.find(...).all

Теперь вы можете использовать атрибут create_at моделей Rails, чтобы делать то, что вы хотите.Тогда вам просто нужно сделать что-то вроде:

Order.where("created_at > ?", 2.days.ago.to_date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...