2010-06-30 11 views

Répondre

1

Essayez ceci:

Widget.all(:conditions => "color IS NOT NULL") 
+0

Oui, je connaissais tout cela, merci les gars. Je suppose qu'il n'y a aucun moyen de le faire avec un chercheur dynamique. KandadaBoggu obtient la réponse parce que son 5 caractères est plus court :-D –

1

Pas tout à fait aussi élégant, mais cela devrait fonctionner:

Widget.find(:all, :conditions => "'color' IS NOT NULL") 
2
Widget.find(:all, :conditions => "color IS NOT NULL") 
3

deux façons, selon la façon dont vous voulez spécifique être:

# in your model 
class Widget < ActiveRecord::Base 
    # first way 
    named_scope :coloured, {:conditions => ["color IS NOT NULL"]} 
    # second way 
    named_scope :not_null, lambda{|*args| (field=args.first ? {:conditions => ["#{field} is not null",field]} : {}) } } 
end 

# in your controller 
@coloured_widgets = Widget.coloured.all   # using first way 
@coloured_widgets = Widget.not_null(:colour).all # using second way 

J'espère que ça aide.

Salutations