Поскольку в столбце "create_at" содержатся дата и время, но вам нужно сравнивать только дату, у вас есть два способа (я предполагаю, что вы используете MySQL):
- используйте МЕЖДУ
scope :today, lambda { WHERE("created_at BETWEEN '#{DateTime.now.beginning_of_day}' AND '#{DateTime.now.end_of_day}'") }
- использование ДАТА () функция:
scope :today, lambda { WHERE('DATE(created_at) = ?', Date.today)}
также, вы можете добавить столбец «create_on» втаблица только с датой.
Обновлено:
def self.up
add_column table_name, :created_on, :date
add_column table_name, :updated_on, :date
end
scope :today, lambda { where(created_on: Date.today) }