-2

我在我的代碼聲明:在開發模式作品SQLite中而不是在PostgreSQL的...屬性不是1

RentalItem.last.maintenance_orders.where("status_id IS NOT 2").present? 

工作正常,但不能在PostgreSQL生產。麻煩的是,語法是使代碼工作的唯一方法,因爲在我的聲明中,如果子maintenance_orderstatus_idnil,那麼我希望它可以通過.present?命令找到。其他語法忽略了nil。在這裏看到這個問題:Rails ActiveRecord find children where attribute is NOT a given value

有關如何更改此語法的任何想法?

+1

爲什麼你不理你接受你的其他問題的答案? '不是2'是無效的SQL,所以PostgreSQL抱怨。另外,在SQLite上開發並部署在PostgreSQL上是一個可怕的想法;開發,測試和部署在同一個數據庫上,或者您處於混亂和錯誤的世界。 –

+0

大聲笑你是對的,我接受了答案並改變了代碼,但忘了提交這些改變,原來不好的'不是'代碼也是如此。感謝您的意見! – james

回答

0

嘗試:

RentalItem.last.maintenance_orders.where("status_id <> 2 or status_id is null").present? 
+0

「status_id <> 2或status_id爲空」 –

相關問題