2010-09-21 3 views
1

Je veux trouver des documents dans ActiveRecord qui ont un attribut qui est soit nil ou une certaine valeur:Comment dit-on dans SQL/ActiveRecord, "Trouver tous les enregistrements où l'attribut est nul ou 'x'"?

class Model < ActiveRecord::Base 

end 

class CreateModels < ActiveRecord::Migration 
    def self.up 
    create_table :models do |t| 
     t.string :some_property 
    end 
    end 

    def self.down 
    drop_table :models 
    end 
end 

Model.all(:conditions => ["some_property IN (?)"], [nil, "this value"]) 

Comment puis-je configurer cela?

Répondre

2

Essayez cette

Model.all(:conditions => 
    ["some_property = ? or some_property is null", "this value"]) 
2

Vous devez diviser la condition NULL séparément:

Model.all(:conditions => [ "some_property=? OR some_property IS NULL", "this value" ]) 

Pour tester si une valeur est NULL, vous devez utiliser IS NULL ou IS NOT NULL.

Questions connexes