Я изо всех сил пытаюсь сосредоточиться на запросе ActiveRecord.
Я пытаюсь найти в моей базе данных объекты GolfRetailer с идентификатором 1..100, которые имеют что-то (не nil
) в своем поле :website
, и которые не имеют true
вих duplicate_domain
поле.
Вот запрос, который я ожидал выполнить:
GolfRetailer.where.not(website: nil, duplicate_domain: true).where(id: 1..100)
Я также пробовал этот вариант по существу того же запроса: GolfRetailer.where.not(website: nil).where(id: 1..100, duplicate_domain: !true)
Но оба возвращают пустой массив, несмотря на то, что определенно существуют записи, отвечающие этим требованиям.
Когда я запускаю GolfRetailer.where.not(website: nil).where(id: 1..100)
, я получаю массив, и когда я запускаю GolfRetailer.where.not(website: nil, duplicate_domain: nil).where(id: 1..100)
, я также получаю массив, но со всеми записями, которые do имеют истинный флаг duplicate_domain, который нене то, что я ищу.
Я бы предпочел не искать записи с duplicate_domain: nil
, так как это не всегда правильно (возможно, я еще не обработал их домен).
Для ясности, вот схема дляМодель.
create_table "golf_retailers", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "place_id"
t.string "website"
t.string "formatted_address"
t.string "google_places_name"
t.string "email"
t.boolean "duplicate_domain"
t.index ["duplicate_domain"], name: "index_golf_retailers_on_duplicate_domain"
end
Чего мне не хватает, чтобы этот запрос работал?