2014-02-17 31 views
-2

我有一个Model属性的Model Model。 我想创建一个查询,返回员工不在假期。用滑轨查询

例如:

employees = Employee.where("disease = ? AND (Date.today < holidays.starts_at OR Date.today > holidays.ends_at)", false).order("engagement ASC").all 

员工型号:

class Employee < ActiveRecord::Base 

    has_many :holidays, :dependent => :destroy 

    after_initialize do 
    self.acceso ||= true 
    end 
end 

假期型号有:starts_at, :ends_at, :employee_id属性

回答

1

你也许可以做到像

current_holidays = Holiday.where(["starts_at <= :now AND ends_at >= :now", {:now => Time.now}]) 
employees_on_holiday = current_holidays.map(&:employee_id) 
employees_not_on_holiday = Employee.where(["NOT id IN (?)", employees_on_holiday]) 

根据您的需求进行调整,并且我确信它也应该可以在单个查询中完成。