has_and_belongs_to_many refer to same Model

I have a User model and in I want to have a

has_and_belongs_to_many :users

Obviously that won't work since the join table will have the same column
names (user_id).

What approach should I take?


You need to give the association a different name, and a few other things

class User
   has_and_belongs_to_many :friends,
                                            :class => "User",
                                           :association_foreign_key =>
                                           :join_table => "friends_users"

You then need to make a join table named "friends_users" with no
primary key and user_id and friend_id columns.