我的模型Tasks
包含字段completed:boolean
和completed_date:datetime
。
如果任务完成,它将具有标记为已完成的日期,否则completed_date
将为假。
我正在尝试编写一个查询,查找completed = false
和completed_date less than 2 days ago OR
已完成的所有任务= true and
completed_date = nil`
这样的事情在我的控制器中无效current_user.account.tasks.where("(completed = ? AND completed_date = ?) OR (completed = ? AND completed_date > ?)", false, nil, true, Time.now - 2.days)
。
答案 0 :(得分:1)
你可以写像
这样的东西current_user.account.tasks.where("completed_date is NULL OR completed_date > ?", 2.days.ago)
并且不应该有任何错误(除非您的关联有问题)
您不应该需要completed_date
和completed
。您可以仅使用completed_date
进行两项检查(completed_date
而非null
表示completed
为true
)