Hey, how do I set a scope in rails 3 to todays records?
This doent work, yet. I get no data.
class MyModel < ActiveRecord::Base
scope :today, :con
Since "created_at" column contains date and time, but you need compare only date, you have two ways (I assume you use 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)}
also, you can add "created_on" column to the table with date only.
Updated:
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) }