Я полагаю, что эта проблема возникает из .svn файла. Это или неправильно в старом родителе, новом родителе или старом. Я попытался бы возвращаться назад к Вашей начальной точке. Используйте экспорт для получения чистой копии папки. Переместите чистую копию в новое местоположение, и используйте добавление и удалите, чтобы сделать перемещение. Это вручную делает то, что делает SVN, но он мог бы работать.
Имейте в виду, что DateTime содержит дату и время, поэтому вы ищете записи, которые имеют точное значение, а не только один и тот же день.
Вы можете сделать это одним из двух способов. Вы можете выбрать диапазон времени от начала дня до конца или создать столбец date
, чтобы помочь лучше сгруппировать данные.
Версия диапазона выглядит следующим образом:
@deals = Deal.where('start BETWEEN ? AND ?', DateTime.now.beginning_of_day, DateTime.now.end_of_day).all
Другая требует создания нового столбца start_date
в вашей таблице и заполнения его датами соответственно. Вы можете индексировать эту дату, и ваши запросы будут выполняться намного быстрее, поскольку выбор диапазона не всегда быстр для больших наборов данных.
Для тех, кто все еще находится на Rails 4:
Чтобы дополнить ответ not_a_patch выше, я бы использовал:
Deal.where(start: Time.zone.now.beginning_of_day..Time.zone.now.end_of_day)
, потому что Time.zone
будет использовать UTC (то есть, как ваше поле даты и времени сохранено), а DateTime.now
- нет.
> DateTime.now
=> Fri, 08 Sep 2017 11:28:21 -0400
> Time.zone.now
=> Fri, 08 Sep 2017 15:29:53 UTC +00:00
В Rails 5.1 введен помощник Date#all_day
, который возвращает объект диапазона для заданной даты, поэтому вы можете просто написать:
Deal.where(start: Date.today.all_day)
Вы также можете использовать SQL DATE()
функция для вашей цели, например:
@deals = Deal.where('DATE(start) = ?', Date.today)