如何在Ruby on Rails中返回多个集合及其相关模型的子集?

时间:2011-08-15 08:10:17

标签: ruby ruby-on-rails-3 activerecord

在这里使用Rails 3。

我有一个名为'employee'的模型,它有许多地址并且有很多联系人:

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

我想要做的是能够编写一个返回特定Employee的查询,以及在指定日期之后创建的所有地址以及在同一日期之后创建的所有联系人。如果可以的话,我该如何制作这样的陈述呢?

我在地址和联系模型上定义了范围:

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

...但我无法想出一种方法来制作一个SINGLE查询,一次性返回Employee和每个集合的过滤子集。如何有效地做任何想法将不胜感激。

谢谢-wg

1 个答案:

答案 0 :(得分:0)

也许是这样的:

Employee.find(specific_user_id,
              :joins => :addresses, 
              :conditions => { 
                :addresses => ["created_at >= ? OR updated_at >= ?", time, time] 
              }
)