Я использую камень textacular для реализации нечеткого поиска в моем приложении Rails, и я не могу понять, как выполнить поиск по нескольким таблицам сразу. Вот пример запроса, который ищет нескольких таблиц без textacular
:Rails - Как выполнить нечеткий поиск на нескольких таблицах с использованием Textacular?
@results = Owner.includes(:car => :company).where("name LIKE ? OR cars.name LIKE ? OR companies.name LIKE ?", sql_query, sql_query, sql_query).references(:cars, :companies)
Как вы можете видеть, этот запрос выполняет поиск Owner
, Car
и Company
таблицы. Дальние я с textacular
это:
@results = Owner.includes(:car => :company).references(:cars, :companies).fuzzy_search({name: sql_query})
выше запрос ищет только Owner
таблицу, хотя. Я попытался сделать следующее, чтобы заставить его искать Companies
таблицу, а также:
@results = Owner.includes(:car => :company).references(:cars, :companies).fuzzy_search({name: sql_query, "companies.name" => sql_query})
Это не работает, потому что он пытается искать в owners.companies.name
поле, которое, конечно, не существует. Я хочу, чтобы он искал поле companies.name
в дополнение к полю owners.name
. Кто-нибудь знает, как выполнить нечеткий поиск по нескольким таблицам, используя textacular
?
Благодарим вас за ответ! Я действительно набрал свой ответ, когда вы разместили это. Я понял, как это сделать. – Alexander