Hi,
We’re trying to rewrite veeeery old Rails app that we successfully
managed to move to 1.2.6 and now we’re trying with 2.1.0.
One of the problems is caused by :include in AR.find. Rails 1.2.6
generates totally different SQL query than
2.1.0. Here’s Rails find query and generated SQL queries:
Foo.find(:all, :include => :ticket, :conditions => (‘project_id =>
1’))
Rails 1.2.6
SELECT foos.id
AS t0_r0 … FROM foos LEFT OUTER JOIN tickets ON
tickets.id = foos.ticket_id WHERE (project_id = 1) # works fine
Rails 2.1.0
SELECT * FROM foos
WHERE (project_id = 1) # JOIN is missing and
Rails complains about missing project_id column in foos table
Foos table doesn’t have project_id column, but tickets table does. Foo
belongs_to :ticket and Ticket belongs_to :project.
Any idea how to fix it?