रेल 4 में आप उपयोग कर सकते हैं User.where.not(id: [])
जो आपको सही परिणाम देगा। यह पैदा करता है:
SELECT "users".* FROM "users" WHERE (1 = 1)
दुर्भाग्य से User.where('id NOT IN (?)', [])
समकक्ष होना चाहिए लेकिन ऐसा नहीं है। यह अभी भी आपको गलत परिणाम देता है:
SELECT "users".* FROM "users" WHERE (id NOT IN (NULL))
संदर्भ:
- https://github.com/rails/rails/issues/778
- https://github.com/rails/arel/commit/cbff1bcf
- https://github.com/rails/rails/pull/8332
- https://github.com/rails/rails/commit/8d02afeaee8993bd0fde69687fdd9bf30921e805