我有一个范围,用于查找call_status打开且unit_id为nil的呼叫记录。
scope :unassigned_calls, where(:call_status => "open", :unit_id => nil).order("id ASC")
我最近设置了一个has_many关系,其中在调用模型上不再使用unit_id,而是在call_unit模型连接表上使用一个名为unit_ids的字段。
如何将范围或lambda表示为包含连接表中unit_ids的位置?
答案 0 :(得分:0)
我不相信AREL允许你调用外连接。尝试写出SQL
scope :unassigned_calls, joins("left outer join call_unit on call.id=call_unit.call_id").where("call_unit.unit_id is null").order("id ASC")
我在这里假设连接表有一个call_id列,这可能不准确,但希望它能为您提供必要的框架