クラスで比較的単純な名前付きスコープを構築しようとしてい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)
ありがとうございました!
トム