I''m having a problem with belongs_to and has_and_belongs_to_many. Here''s a brief summary of the models involved: class Member < ActiveRecord::Base set_primary_key ''member_id'' has_and_belongs_to_many :projects, :join_table => ''projects__members'' has_many :projects, :foreign_key => ''created_by'' end class Project < ActiveRecord::Base set_primary_key ''project_id'' belongs_to :created_by, :class_name => ''Member'', :foreign_key => ''created_by'' has_and_belongs_to_many :members, :join_table => ''projects__members'' end And the DDL: create table members ( member_id serial primary key , email_address text not null unique , is_active boolean not null default true , is_admin boolean not null default false , can_produce boolean not null default false ); create table projects ( project_id serial primary key , project_name text not null unique , created_by integer not null references members (member_id) ); create table projects__members ( project_id integer not null references projects(project_id) , member_id integer not null references members(member_id) , is_producer boolean not null default false , is_active boolean not null default true , unique (project_id, member_id) ); From looking at the SQL that gets called, a statement like @member.projects.find(:all) appears to be doing something like select projects.* from members join projects on (member_id = created_by). Most of the time, I''d like it to make the join through the projects__members table. However, that''s besides the point. How can I specify how the join is made? Is there something obviously wrong with my schema? I''ve been looking through AWDwR, googling, and searching my mailing list archives, but I haven''t found a solution. (I''m surprised I haven''t found anything and think I must have missed something obvious, because I don''t think this is *that* obscure.) Thanks for any advice and suggestions. Michael Glaesemann grzm myrealbox com [1](http://www.loudthinking.com/arc/000229.html)