Как мне найти все даты, которые происходят в определенную дату в ruby? - PullRequest
0 голосов
/ 19 мая 2010

У меня есть метод, который проходит через каждый день недели:

  def dates_week(d, delim)
      "<tr>" + (d.beginning_of_week...(d.beginning_of_week+5)).map do |day|
      "<#{delim}> #{yield(day)} </#{delim}>"
    end.join + "</tr>"

  end

Для каждого дня недели я подключаю это как аргумент к методу (или, возможно, named_scope, не выяснил, какой именно), который затем выведет .count для: всех писем, имеющих: date_sent в эту дату. Однако: date_sent - это отметка даты и времени, поэтому я не могу использовать ==, как у меня ниже.

  def sent_emails_by_date(date)
    ContactEmail.find(:all, :conditions => "date_sent = '#{date}'"
    " ).count
  end

Например, в View это то, что я использую:

<table class='reports'>
    <%= dates_week(Date.today, "th") {|d| d.strftime("%A")} %>
    <%= dates_week(Date.today, "td") {|d| sent_emails_by_date(d)}%>
</table>

Как найти все электронные письма, приходящиеся на день, для даты, прошедшей через метод, который проходит через неделю, как показано выше?

1 Ответ

0 голосов
/ 14 мая 2011

Попробуйте

def send_emails_by_date(date)
  ContactEmail.find(:all, :conditions => { :date_sent => (date.at_beginning_of_day)...(date.end_of_day)).count
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...