Я занимаюсь разработкой небольшого пользовательского приложения в Rails 3 и застрял в функции поиска. Я получил таблицу под названием Профиль, которая содержит имя и фамилию. При поиске в этой таблице я использую:
Profile.find_all_by_firstname(params[:keyword])
Дело в том, что я хочу, чтобы пользователь мог искать в таблице, содержащей контакты (только profile_id и friend_id), но я также хочу, чтобы они могли искать по имени и здесь. Как это сделать?
Например:
Джон ищет имя Энн, которое является его контактным лицом. Поскольку таблица контактов не хранит имена, поиск должен включать в запрос таблицу профилей. Как я могу это сделать?
UPDATE
Этот запрос присоединения выбирает всех, а не только контакты, кто-нибудь может обнаружить проблему с ним?
Profile.find_all_by_firstname(params[:keyword],
:select => "firstname, lastname, user_id",
:joins => "left outer join contacts on profiles.id = contacts.profile_id")