基本上,我有点拘泥于此。我使用的是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)
另外,请注意,我在查询
=
和<
符号