2012-07-17 119 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