检查end_time< Time.now在范围内

时间:2014-04-16 21:51:01

标签: ruby-on-rails ruby-on-rails-4

检查end_time< Time.now在范围内。

我有一个定义'ends_at'时间并检查它是否'结束'的方法:

def end_time
  created_at + ends_at.day
end

def over?
  end_time < Time.now
end

我担心我的解决方案不太正确:

def self.ended
  Campaign.all.select {|c| c.over? == true}
end

1 个答案:

答案 0 :(得分:0)

请注意,在您的解决方案中,您正在从数据库中获得所有活动,然后查看哪一个检查条件,这不是一个好主意...... 另外,为什么不在数据库中存储结束日期?这应该更容易。

尝试这样的事情:

 def self.ended
   Campaign.where(created_at > ?, Time.now - ends_at.day)
 end