如何获得今天由Rails activerecord创建的记录?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

当我想要获得今天创建的所有记录时,我应该如何编写条件语句?

提问于
用户回答回答于
Post.where("created_at >= ?", Time.zone.now.beginning_of_day)

用户回答回答于

通常,如果你基于created_at列执行查找,请在迁移文件的表中添加索引。

add_index :posts, :created_at

现在,查找今天创建的记录:

Rails 3/4

Post.where("created_at >= ?", Time.zone.now.beginning_of_day)

查找在特定日期创建的帖子。

Post.where(:created_at => (date.beginning_of_day..date.end_of_day))

--------- 或者 -------------

为模型添加一个静态方法

class Post < ActiveRecord::Base
  def self.today
    where("created_at >= ?", Time.zone.now.beginning_of_day)
  end
end

Post.today #returns posts today

Rails 2

Post.all(:conditions => ["created_at >= ?", Time.zone.now.beginning_of_day])

--------- 或者 -------------

将一个named_scope添加到你的模型中

class Post < ActiveRecord::Base    
  named_scope :today, lambda { 
    {
      :conditions => ["created_at >= ?", Time.zone.now.beginning_of_day]
    }
  }
end

Post.today #returns posts today

扫码关注云+社区