2012-07-17 78 views
1

我正在编写一个范围,该范围应该查找状态为open并且日期时间大于当前时间的任何调用。我的语法有点模糊,有人能帮助我指出正确的方向。范围评估Rails 3中的时间

例失败:

scope :scheduled_calls, where(:call_status => "open", :transfer_date > Time.now) 

回答

6

您需要使用lambda来评估的范围时,它的名字,而不是在类被加载到。

scope :scheduled_calls, lambda { where(["call_status = ? and transfer_date > ?", "open", Time.now]) } 
0

试试这个:

scope :scheduled_calls, where("call_status = 'open' and transfer_date > ?", Time.now) 
+0

'lambda'应在此处使用,以避免Time.now'的'缓存 – rubish 2012-07-20 21:58:40