2013-10-10 3 views
0

У меня есть одна модель с именем Customer и другая модель с именем contact.как искать из двух таблиц

Я сохраняю идентификатор клиента в таблице контактов.

В методе поиска я хочу искать значения из таблицы контактов, а также таблицы клиентов.

Мой метод здесь: -

класс Customer < 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 

конец

Это работает, но когда я начинаю поиск, если имя контакта нет в в то время это не поиск, и еще одна проблема заключается в том, что он отображает одного и того же клиента два раза.

ответ

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}%") 
+0

спасибо много. это сработало для меня. –

+0

@ user123 Нет проблем, вы можете отметить вопрос как ответ. –

Смежные вопросы