2010-05-02 2 views
2

Я пытаюсь суммировать ежедневные суммы покупки для данного пользователя. @dates - массив из 31 даты. Мне нужно условие поиска, чтобы сравнить дату с массива на дату created_at покупок. То, что я делаю ниже, сравнивает точное значение DateTime для столбца create_at. Мне нужно, чтобы он смотрел на день, а не на DateTime.Rails created_at find condition

Как я могу написать это так created_at находится между датой из массива?

<% @dates.each do |date| %> 
    <td><%= current_user.purchases.sum(:amount, :conditions => ["created_at = ?", date]) %></td> 
<% end %> 

ответ

4

Вам нужно найти начальную и конечную даты в этом массиве, а затем вы сможете записи, где created_at находится между использованием этого:

:conditions => ["created_at >= ? AND created_at <= ?", start_date, finish_date] 
+0

Спасибо! Я заработал. –

5
:conditions => {:created_at => start_date..finish_date} 
+0

Gotta любовь простой сильной печати. Не знал о .. либо :) –

Смежные вопросы