You'll likely need to go to SQL here... Join the tables together and
return the result based on the memberships of the instance-level
player.
has_and_belongs_to_many :teammates,
:join_table => TeamMembership.table_name,
:finder_sql => "SELECT p2.* FROM #{TeamMembership.table_name} AS
t1 INNER JOIN #{Player.table_name} AS p1 ON t1.player_id = p1.id INNER
JOIN #{Player.table_name} AS p2 ON p2.team_id = t1.team_id WHERE p1.id
= \#{id} AND p2.id != \#{id}"