has_one :through eager-loading problem

eleasar
Tue, 16 Sep 2008 16:44:09 -0000

I have a problem with the :include option in find for my
has_one :through association.

I have Users, Profiles and Customers, all connected to each other with
a has_one :through => :membership association like this:

class Profile < ActiveRecord::Base #could also be user or customer

  has_one :membership # i saw an acrticle of Ryan about
has_one :through, there this would be has_many, is this wrong?
  has_one :user, :through => :membership
  has_one :customer, :through => :membership

end

now if I search for profiles with the :include option:

def index
  @profiles = User.find(:all, :include => [:user, :customer])
end

i get an error:

Mysql::Error: #42S22Unknown column ''users.profile_id'' in
''on clause''

obviously, it searches for the profile_id on the wrong place, it
should search it in memberships

anyone has an idea? Thanks..