我正在尝试检查赋值的due_date(datetime数据类型)是否等于Date.today。我需要帮助的逻辑是'due_date:Date.today'部分。提前谢谢。
@student_assignments = StudentAssignment.joins(:assignment).where(assignments: { due_date: Date.today })
答案 0 :(得分:1)
.where("DATE(assignments.due_date) = ?", Date.today)
答案 1 :(得分:0)
这是一个可能的解决方案:
{ due_date: (Date.today.beginning_of_day..Date.today.end_of_day) }
答案 2 :(得分:0)
要与datetime列进行比较,您需要拥有DateTime对象。但是,如果您将权益与DateTime.now.beginning_of_day
进行比较,则只会将分配与00:00
的到期匹配。
相反,如果您想要今天到期的分配,您可以这样做:
StudentAssignment.joins(:assignment)
.where(assignments: {
due_date: DateTime.now.beginning_of_day..DateTime.now.end_of_day
})
您可以创建命名范围:
class Assignment < ActiveRecord::Base
scope(:due_today) -> {
where(due_date:DateTime.now.beginning_of_day..DateTime.now.end_of_day )
}
end