Bug with table_name_prefix?

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.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs