Как сказать в SQL / ActiveRecord: «Найти все записи, где атрибут равен nil или« x »»? - PullRequest
1 голос
/ 21 сентября 2010

Я хочу найти записи в ActiveRecord, которые имеют атрибут nil или некоторое значение:

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"])

Как мне это настроить?

Ответы [ 2 ]

2 голосов
/ 21 сентября 2010

Вы должны разделить условие NULL отдельно:

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

Чтобы проверить, имеет ли значение NULL, вам нужно использовать IS NULL или IS NOT NULL.

2 голосов
/ 21 сентября 2010

Попробуйте это

Model.all(:conditions => 
  ["some_property = ? or some_property is null", "this value"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...