rails 3 find()从现在到午夜

时间:2011-04-26 14:04:29

标签: ruby-on-rails-3 activerecord

我有一个事件模型,其start_at类型为datetime。如何搜索以查找今天是否还有一个事件,所以start_at从现在到午夜。

由于

3 个答案:

答案 0 :(得分:11)

在Rails 3中,您现在可以执行此操作:

  

范围条件

     

如果您正在寻找内部范围   一个表(例如,用户创建   在某个时间范围内)你可以使用   条件选项加上   在SQL语句中。如果你有   两个日期从控制器进来   你可以做这样的事情   寻找范围:

Client.where(:created_at => (params[:start_date].to_date)..(params[:end_date].to_date))

所以在你的情况下,它将是:

Event.where(:start_at => (Time.zone.now)..(Time.zone.now.end_of_day))

刚刚经过测试,它在Time.zone.nowTime.zone.now.end_of_day附近也没有括号。

(来自Rails Guides

答案 1 :(得分:3)

Event.where('start_at >= ? and start_at <= ?', Time.zone.now, Time.zone.now.end_of_day)

如果您希望这对多个用户完全准确,则必须处理用户时区。

答案 2 :(得分:0)

Event.where("start_at BETWEEN ? AND ?", Time.zone.now, Time.zone.now.end_of_day)