ActiveRecord传递方法datetime的位置

时间:2013-11-29 23:11:58

标签: ruby-on-rails ruby datetime activerecord

感谢您在我最近的Rails应用程序中的持续支持。我已经在Rails中做了一段时间,所以这是我最新的问题。我感谢你们过去给予的帮助。

我有一个名为Event.rb的模型,其中包含日期:日期和时间:事件的时间字段。

我在模型中也有一个方法是..

def begins
    DateTime.new(date.year, date.month, date.day, time.hour, time.min, time.sec)
end

因为我无法看到某些东西是否真正通过,因为我只将日期和时间分开,所以我需要它们一起。

我的问题是......

我希望能够添加DateTime:在我的模型中开始使用以下其他方法...

def self.past
    where("date <= ?", TIME_NOW)
end

就像我有一个方法......

def upcoming?
    self.date >= Time.now
end

我可以很容易地将self.date改为开始并将过去我想象的?

谢谢!

1 个答案:

答案 0 :(得分:1)

也许这样的内容可用于使用您现有的datetime列查询数据库中的过去事件:

scope :past, lambda {
  where("date <= ? and time <= ?",
         Time.now.strftime("%Y-%d-%m"),
         Time.now.strftime("%H:%M:%S")
       )
}

past_events = Event.past

要检查当前实例,您可以继续使用begins方法:

def past?
  begins < DateTime.now
end

@event = Event.first
@event.past?