0

我有一个名为 Customer 的模型和另一个名为 contact 的模型。

我将客户 ID 保存在联系人表中。

在搜索方法中,我想从联系人表和客户表中搜索值。

我的方法在这里:-

客户类 < ActiveRecord::Base>

 def self.search(search)
  if search
    Customer.joins(:contacts).where("customers.company_name ILIKE? OR customers.status ILIKE? OR customers.types ILIKE? OR contacts.name ILIKE? OR contacts.email ILIKE?", "%#{search}%","%#{search}%", "%#{search}%","%#{search}%", "%#{search}%")
  else
    scoped
     end
  end 

结尾

这是可行的,但是当我开始搜索时,如果联系人姓名当时不存在,则它没有搜索,另一个问题是它两次显示同一客户。

4

1 回答 1

0

使用includes代替joins

Customer.includes(:contacts).where("customers.company_name ILIKE? OR customers.status ILIKE? OR customers.types ILIKE? OR contacts.name ILIKE? OR contacts.email ILIKE?", "%#{search}%","%#{search}%", "%#{search}%","%#{search}%", "%#{search}%")
于 2013-10-10T09:57:43.180 回答