我尝试在控制器中使用下面的代码行来捕获所有在当前日期后不到一周内到期的任务:
@due_this_week = current_user.tasks.where(due_date: Date.today..1.week.from_now)
由于某种原因,即使我知道我有任务在4天和6天内到期,它也找不到任何结果。这是唯一使用范围查询的示例变量。我有另一个可以很好地查找过期任务的示例变量:
@overdue = current_user.tasks.where("due_date <= ?", Date.today)
我错过了什么?
3条答案
按热度按时间pkwftd7m1#
结果发现我的控制器设置不正确,在创建新任务时不再保存
current_user
的ID,这就是为什么它们没有被找到的原因。我用rails控制台找到了这个问题,并对最后提交的几个任务运行了一个查找。user_id
被设置为nil
。感谢assist @mu太短了。ws51t4hk2#
仅供参考,您也可以使用单侧范围。
适用于到期日为1周前的所有呼叫
或截止到今天的所有呼叫
zi8p0yeb3#
应道: