New version of Activerecord gives different result

I am sorry, but I am struggling. I installed new versions of my gems and my programs don't run anymore. As suggested I tried to roll back to older versions, but that is becoming a bigger mess. The flight forward has at least recovered 90% of my application.

Both statement worked perfect with the old version of activerecord. Now the first one works okay, the last one does not get the join built up in the sql statement.

Again thanks for all the help. Ernst

This statement works:

owner = Owner.find(:all, :include => {:accounts => {:orders =>{}}}, :conditions => ['Orders.flag = 0'], :order => ['owners.name, accounts.name, orders.id'])

This statement does not work: owner = Owner.find(:all,     :include => {:accounts => {:trades =>{}}}, :order => ['owners.name, accounts.name, trades.underlying, trades.month, trades.strategy'] )

I found a work around dirty but for now it works.

The difference between the statements is the use of the conditions part.

I added a fake condition

:conditions => ['trades.id = trades.id']

and now the joins is built as I want.

Definitely a difference between activerecord versions.

Would still appreciate a comment from a experience programmer.

Eager loading (:include) changed substantially in 2.1 but should be able to fallback to the previous code in cases like this. You've confused the fallback code by giving an array to :order where you should only be giving a string (the first example works because the conditions options is able to trigger the fallback.

Fred