活动记录 - 查找今天之前创建的记录

Say*_*yuj 78 ruby activerecord

我想获取created_at字段小于今天(日期)的所有记录.有什么像:

MyTable.find_by_created_at(< 2.days.ago)
Run Code Online (Sandbox Code Playgroud)

tok*_*and 146

使用ActiveRecord的标准方式:

MyModel.where("created_at < ?", 2.days.ago)
Run Code Online (Sandbox Code Playgroud)

使用底层的Arel接口:

MyModel.where(MyModel.arel_table[:created_at].lt(2.days.ago))
Run Code Online (Sandbox Code Playgroud)

在Arel上使用薄层:

MyModel.where(MyModel[:created_at] < 2.days.ago)
Run Code Online (Sandbox Code Playgroud)

使用吱吱声:

MyModel.where { created_at < 2.days.ago }
Run Code Online (Sandbox Code Playgroud)


And*_*eas 13

要获取MyTable2 天前创建的所有记录:

MyTable.where(created_at: Date.new..2.days.ago)
Run Code Online (Sandbox Code Playgroud)

请注意,您也可以寻找记录包含的字段在类似的方式对未来的字段,即获得的所有记录MyTableevent_date至少2天从现在开始:

MyTable.where(event_date: 2.days.from_now..DateTime::Infinity.new)
Run Code Online (Sandbox Code Playgroud)