2011-08-06 20 views
13

Aşağıdaki bulucu IS NULL'u yazdırır.ActiveRecord NOT NULL sql bulucu

User.where(:id =>nil) #=> [] 
User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL ORDER BY created_at DESC 

IS NOT NULL one?

+1

Yinelenen http://stackoverflow.com/questions/4252349/rail-3-where-condition-using-not-null – Vache

+0

Bu sorunun cevabı var - http://stackoverflow.com/questions/4252349/rail-3- nerede-koşul-kullanarak-değil-null – ipr101

cevap

15

en basit, deyimsel ActiveRecord çözeltisi:

User.where.not(id: nil) 
+1

Not : Sadece 'raylar> = v4.0.2' ile çalışır. Bakınız: http://apidock.com/rails/ActiveRecord/QueryMethods/WhereChain/not – morgents

5

User.where.not(id: nil) eski sürümleri için çalışacak raylar

User.where("id IS NOT NULL") 4. için çalışacak Bu işini yapmalıdır

User.where("id IS NOT NULL") deneyin.

+0

Bu daha az ya da daha az aynıdır http://stackoverflow.com/a/27613775/38765 (yine de ilk cevapladıysanız), ve aynı zamanda Rails 3 üzerinde çalışmaz. –

0

Raylar Eğer belirli id ​​dışlamak için arıyorsanız Ayrıca bu

User.where("id is not NULL") 

denemek ve irade aşağıdaki nil değerleri içerebilir 4

Çalıştırma

User.where("id is NULL or id != 'excluded_id'") 
İlgili konular