0
比方說,我有以下型號:Rails的LEFT OUTER JOIN
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)
但是,這仍然只是在該日期範圍內的變化返回僱員。我還希望在該日期範圍內返回沒有班次的員工。
這樣的查詢如何工作?
謝謝看起來不錯。唯一的問題是它現在加載所有班次。不僅是日期範圍內的所有人。 – Ben 2012-07-13 12:10:06
這很奇怪。你能檢查結果中產生了什麼SQL查詢嗎? – 2012-07-13 12:12:09
其實不止一個。第一個似乎是正確的: – Ben 2012-07-13 12:14:22