Как вернуть подмножество нескольких коллекций и связанных с ними моделей в Ruby on Rails? - PullRequest
1 голос
/ 15 августа 2011

Работа с Rails 3. здесь.

У меня есть модель с именем 'employee', у которой много адресов и много контактов:

class Employee < ActiveRecord::Base
has_many :addresses
has_many :contacts

Я хочу сделать следующее.быть в состоянии написать один запрос, который возвращает конкретного сотрудника вместе со всеми адресами, созданными после указанной даты, и со всеми контактами, созданными после этой же даты.Если это возможно, как бы я создал такое утверждение?

У меня есть определенные области действия для адресов и моделей контактов как таковые:

scope :created_after, lambda { |date_time| where('created_at >= ? or updated_at >= ?', date_time, date_time}

... но я не могу прийтисо способом создания ОДИНОЧНОГО запроса, возвращающего Сотрудника и отфильтрованное подмножество каждой коллекции одним махом.Будем благодарны за любые идеи о том, как сделать это эффективно.

Спасибо -wg

1 Ответ

0 голосов
/ 15 августа 2011

Возможно что-то вроде:

Employee.find(specific_user_id,
              :joins => :addresses, 
              :conditions => { 
                :addresses => ["created_at >= ? OR updated_at >= ?", time, time] 
              }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...