我正在尝试在我的Products
班级中构建一个相对简单的命名范围。奇怪的是,如果我直接发出查询(a la Product.where()
),我会得到我期望的结果。但是,如果将此查询更改为scope
声明,则结果集为nil
.
为什么我的查询在直接调用时可以工作,但在将其放入作用域时什么也不产生?这是实际的代码:
scope :is_queued, where("status = 2 OR (status = 0 AND status_expires > ?)", DateTime.now )# <-- returns nil
Product.where("status = 2 OR (status = 0 AND status_expires > ?)", DateTime.now) # <-- returns 1+ results (as expected)
谢谢!
汤姆