Как я могу получить все объекты, вставленные в предыдущую дату в Rails? - PullRequest
0 голосов
/ 13 сентября 2011

Представьте, что у меня есть модель с именем Score, и в день 1 я вставляю 5 баллов, в день 2,3 и 4 нет баллов, а в день 5 еще 4 балла. Теперь я хотел бы сравнить количество набранных баллов сегодня (давайте представим, что сегодня 10-й день) с последним временем подачи баллов. Каков был бы самый оптимальный способ получить список всех результатов, вставленных в прошлый раз? В этом примере это список оценок, вставленных в день 5, но я был бы признателен за общий способ достижения этого.

1 Ответ

1 голос
/ 13 сентября 2011

Попробуйте:

class Score
  def self.recent
    # find the last score date
    last_date = Score.where("created_at < ?", Time.now.beginning_of_day).
      order("created_at DESC").first.try(:created_at)

    return [] unless last_date.present?

    where(:created_at => (last_date.beginning_of_day..
      last_date.end_of_day))
  end
end

Теперь вы можете получить recent баллы как:

Score.recent # list of Score objects
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...