Bug with table_name_prefix?


#1

Hi all,

I think I have found a bug in ActiveRecord’s handling of eager loading
when
using table_name_prefix. Here is a reduction of the problem :

class Cheese < ActiveRecord::Base
##
## id SERIAL
## name VARCHAR(32)
## county_id INTEGER
##
belongs_to :county

 def self.table_name_prefix
     "stuff_"
 end

end

class County < ActiveRecord::Base
##
## id SERIAL
## name VARCHAR(32)
##
has_many :cheeses

 def self.table_name_prefix
     "stuff_"
 end

end

class CountyController < ApplicationController
def index
@counties = County.find( :all, :include => [ :cheeses ] )
end
end

Loading /county/index gives the following error.

PGError: ERROR: column stuff_cheeses.stuff_county_id does not exist.

Note that it is putting the table_name_prefix before the foreign key in
the
cheeses table, and it is this that I consider to the the bug. It
doesn’t
happen if I don’t use eager loading in the controller, that is, I can
access a
county’s cheeses just fine in the view using something like
@counties.first.cheeses.

I’ve looked through the faults list on the RoR site, but I didn’t find
anything resembling this. Can someone confirm that this is indeed a
bug? If
so, I’ll prepare a patch to fix the issue.

Best Regards,
Carl.


TopTheTable.com - Fun and games for the World Cup 2006.
It’ll get you in trouble with your boss, promise.