ActiveRecord: Adicionando condição à cláusula ON para includes

Eu tenho uma oferta de modelos e outro histórico_offers, uma oferta has_many histórico_offers.

Agora gostaria de carregar ansiosamente o histórico_offers de um determinado dia para um conjunto de ofertas, se existir. Para isso, eu acho que preciso passar o dia para a cláusula ON, não a cláusula WHERE, para que eu receba todas as ofertas, mesmo quando não há histórico_offer para o dia determinado.

Com Offer.where (several_complex_conditions) .inclui (: historic_offers) .where ("historical_offers.day =?", Date.today)

eu pegaria

SELECT * FROM offers 
LEFT OUTER JOIN historical_offers 
ON offers.id = historical_offers.offer_id 
WHERE day = '2012-11-09' AND ...

Mas eu quero ter a condição na cláusula ON, não na cláusula WHERE:

SELECT * FROM offers 
LEFT OUTER JOIN historical_offers 
ON offers.id = historical_offers.offer_id AND day = '2012-11-09' 
WHERE ...

Eu acho que eu poderia alterar a definição has_many com uma condição lambda para uma data específica, mas como eu passaria em uma data então?

Alternativamente eu poderia escrever o joins mysqlf assim:

Offer.where(several_complex_conditions)
  .joins(["historical_offers ON offers.id = historical_offers.offer_id AND day = ?", Date.today])

Mas como posso ligar isso para que seja feito um carregamento ávido?

questionAnswers(1)

yourAnswerToTheQuestion