使用LIKE创建Rails查询,该查询在关联表上进行搜索



我想用Postgresql‘like’编写一个Rails查询。我希望能够搜索当前表上的列以及关联表。

我可以这样搜索当前表格:User.where("description LIKE ?", "%happy%")

我可以这样搜索关联:User.joins(:products).where("products.description LIKE ?", "%happy%")

如何将这两个查询合并为一个查询?我想返回其描述包含"快乐"和/或其产品描述包含"幸福"的所有用户。

和版本

User.joins(:products).where("users.description LIKE ? AND products.description LIKE ?", "%happy%", "%happy%")

或版本

User.joins(:products).where("users.description LIKE ? OR products.description LIKE ?", "%happy%", "%happy%")

利用scroll宝石:

def self.any_description_like(criteria)
User.includes(:products).where{
(users.description =~ "%#{criteria}%") |
(products.description =~ "%#{criteria}%")
} 
end

相关内容

  • 没有找到相关文章

最新更新