Как указать условие JOIN ON в ActiveRecord?
При использовании параметра: include для метода ActiveRecord.find созданный SQL использует операцию JOIN с предложением ON внешнего ключа = первичного ключа.,Например:
A.find(:include => :B)
приводит к
select ... from A
left outer join B on B.a_id=A.id
Теперь к моему примеру:
A.find(:include => { :B => { :include => :C } } )
приводит к:
select ... from A
left outer join B on B.a_id=A.id
left outer join C on C.b_id=B.id
НоЯ хочу только некоторые записи в C, но если они не найдены, я все еще хочу A и B
Это не работает
A.find(:include => { :B => { :include => :C } },
:condition => "C.rec<10" )
Поскольку это приводит к:
select ... from A
left outer join B on B.a_id=A.id
left outer join C on C.b_id=B.id
where C.rec<10
Как мне поручить AcriveRecord создать такой запрос?
select ... from A
left outer join B on B.a_id=A.id
left outer join C on C.b_id=B.id and C.rec<10