Just had to swap the foreign keys
has_many :client_associations,
:foreign_key => ''photographer_id'',
:class_name => ''Association'',
:dependent => :destroy
has_many :clients, :through => :client_associations
has_one :photographer_association,
:foreign_key => ''client_id'',
:class_name => ''Association'',
:dependent => :destroy
has_one :photographer, :through => :photographer_association
On Sep 13, 12:00 am, rpflo
<rpflore...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> I''m trying to figure out how to have a two level user
relationship.
>
> Photographers have clients. Clients have one photographer. Both are
> Users.
>
> So I''ve got a User model that looks like this:
> =======================================================> class User <
ActiveRecord::Base
>
> has_many :client_associations, :foreign_key =>
> ''client_id'', :class_name =>
''Association'', :dependent => :destroy
> has_many :clients, :through => :client_associations
>
> has_many :photographer_associations, :foreign_key =>
> ''photographer_id'', :class_name =>
''Association'', :dependent
> => :destroy
> has_one :photographer, :through => :photographer_associations
>
> def self.find_by_login_or_email(login)
> User.find_by_login(login) || User.find_by_email(login)
> end
>
> end
> =======================================================> And an
Association model that looks like:
> =======================================================> class
Association < ActiveRecord::Base
> belongs_to :client, :class_name => ''User''
> belongs_to :photographer, :class_name => ''User''
> end
>
> When I fill it with some data and fire up the console, running
> user.clients.all or user.photographer just gives me an empty array.
>
> What am I doing wrong?