2016-04-03 61 views
0

我有了這個功能:Rails的函數返回零,但數據庫條目可

def lessenActive 
    Lesson.where("start_date < ? AND active = ?", DateTime.now,Nil).update_all(active: true) 
end 

返回零。但我不明白爲什麼,因爲數據庫是severall條目。

使用Rails 4.2

+0

嘗試'主動IS?'而不是'active =?'。 – james00794

+0

我從經驗中得知,'哪裏'似乎對'無'挑剔。也許這個問題的答案將有助於:http://stackoverflow.com/questions/6678723/rails-where-condition-with-nil-value – februaryInk

回答

2
Lesson.where("start_date < ? AND active IS NULL", DateTime.now).update_all(active: true) 

SQL要求使用是代替=檢查NULL,你也可以使用"active IS ?", nil的意見建議。

+1

你可以通過解釋你的查詢與OP的查詢不同,來大大改善這個問題。幫助某人理解一個概念比提供答案的勺子更有用。 – MarsAtomic