Rails ActiveRecord查询日期范围

时间:2013-12-06 00:09:35

标签: ruby-on-rails ruby activerecord

我正在尝试在我的控制器中使用以下行来捕获距离当前日期不到一周的所有任务:

@due_this_week = current_user.tasks.where(due_date: Date.today..1.week.from_now)

由于某种原因,即使我知道我在四天和六天内完成了任务,也没有找到任何结果。这是使用范围查询的唯一实例变量。我有另一个可以找到过期任务的工作:

@overdue = current_user.tasks.where("due_date <= ?", Date.today)

我错过了什么?

2 个答案:

答案 0 :(得分:62)

应该是:

@due_this_week = current_user.tasks.where(due_date: 1.week.ago..Date.today)

答案 1 :(得分:1)

原来我的控制器设置不正确并且在创建新作业时不再保存current_user的ID,这就是为什么没有找到它们的原因。我使用rails控制台并在提交的最后几个分配上运行查找来解决这个问题。 user_id设置为nil。谢谢你帮助@mu太短了。