【发布时间】:2016-01-24 05:47:57
【问题描述】:
我正在使用textacular gem 在我的 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 字段,而该字段当然不存在。除了owners.name 字段之外,我还希望它搜索companies.name 字段。有谁知道如何使用textacular 对多个表执行模糊搜索?
【问题讨论】:
标签: ruby-on-rails postgresql fuzzy-search