В 4 приложении Rails, я связанные модели Истца и товарные знаки, с последним возможностью поиска с помощью Searchkick:Как найти нулевое значение с помощью Searchkick?
class Applicant < ActiveRecord::Base
has_many :trademarks
end
class Trademark < ActiveRecord::Base
belongs_to :applicant
searchkick
end
Я пытаюсь найти примеры товарных знаков, которые не имеет заявителя. Использование стандартного ActiveRecord ниже запрос работает, и возвращает торговую марку без Заявителя:
Trademark.where(applicant: nil).count
(1.7ms) SELECT COUNT(*) FROM "trademarks" WHERE "trademarks"."applicant_id" IS NULL
=> 1
Как я могу запустить эквивалентный запрос с добавлением SearchKick?
# these queries run correctly and show that SearchKick is working
Trademark.search "*" # => 7 records
Trademark.search "*", where: {status: "Removed"} # => 5 records
# When trying to search for applicant == nil, the search fails:
# this returns 7 records, instead of the 1 expected result
Trademark.search "*", where: {applicant: nil}
# this returns 0 records, instead of the 1 expected result
Trademark.search "*", where: {applicant_id: nil}
Как я могу использовать предложение where для значения nil в SearchKick?