我想用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