Rails: Where Date.today is past OR is the :deadline_date



基本上,我有点拘泥于此。我使用的是Rails3.x.x。我现在使用的代码如下

@email_reminder = ToDo.where(:reminder => true, :deadline_date =< Date.today)

上面的代码显然不起作用。我在谷歌上搜索了一下,但几乎每个解决方案都是Rails2.x.x解决方案如果今天的日期已经过去或者是截止日期,找到我所有的"email_reminders"最有效的方法是什么

(不必与上面使用的方法类似,但如果您提供一种使用类似方法的方法,这将有所帮助)

提前感谢

我认为没有理由安装gem来解决这个问题。如果你使用一些好的‘ol SQL:)

@email_reminder = ToDo.where(:reminder => true).where('deadline_date <= ?', Date.today)

注意小于或等于的顺序。

当然,如果你经常遇到这样的问题,Squeel可能值得一探究竟。然而,我倾向于偏离使用单词"hackery"的库

要用Rails执行OR语句,我总是使用scroll。

应该是类似的东西

@email_reminder = ToDo.where{ (:reminder => true) | (:deadline_date =< Date.today) }

编辑:

我从来没有见过逗号用来分隔查询的两个部分(不确定这是否可能),我会这样做(ActiveRecord:中的两个where子句由AND连接

 @email_reminder = ToDo.where(:reminder => true).where({ deadline_date <= Date.today })

如果没有squeel,它将有点像

.where("deadline_date <= ?", Date.today)

另外,请注意,我在查询

中翻转了=<符号

最新更新