【发布时间】:2012-07-13 11:32:32
【问题描述】:
假设我有以下模型:
class Employee < ActiveRecord::Base
has_many :shifts
end
class Shift < ActiveRecord::Base
belongs_to :employee
end
在我的控制器中,我想加载所有员工,包括他们在特定日期范围内的班次。 但我也想包括在该范围内没有任何轮班的员工。
在我的控制器中我尝试过:
@employees.joins("LEFT OUTER JOIN shifts ON employees.id = shifts.employee_id").where('shifts.starts_at BETWEEN ? and ?', weekBegin, weekEnd).to_json(:include => :shifts)
但这仍然只是返回在该日期范围内有班次的员工。我还想退回该日期范围内没有轮班的员工。
这样的查询是如何工作的?
【问题讨论】:
标签: sql ruby-on-rails ruby-on-rails-3 activerecord join