我有一个名为Customer的模型和另一个名称为contact的模型。
我正在联系人表格中保存客户ID。
在搜索方法中,我想从联系人表和客户表中搜索值。
我的方法在这里: -
class Customer< ActiveRecord的::基地>
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
端
这是有效的,但当我开始搜索当时不存在联系人姓名时,它不会搜索,还有一个问题是它是否显示同一个客户两次。
答案 0 :(得分: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}%")