如何根据日期值查找rails对象

时间:2015-03-03 18:23:35

标签: mysql ruby-on-rails activerecord

我有一个User对象,我试图做两个不同的查询,作为需要每晚运行的脚本的一部分。鉴于下面的架构,我想:

  • 获取所有非零end_date
  • 的用户
  • 获取今天之前end_date的所有用户(I.E.已通过)

用户架构:

# == Schema Information
#
# Table name: users
#
#  id                            :integer          not null, primary key
#  name                          :string(100)      default("")
#  end_date                      :datetime

我一直在尝试使用User.where('end_date != NULL)和其他东西,但我似乎无法使语法正确。

1 个答案:

答案 0 :(得分:2)

您的方法应该在User模型中如下:

def self.users_with_end_date_not_null
  self.where.not(end_date: nil)
  # below Rails 4 use
  # self.where("end_date != ?", nil)
end

def self.past_users n
  self.where(end_date: n.day.ago)
end
相关问题