同一テーブルのhabtm

SNSで友人関係を表す場合とかに使いました。多分あんまりないケースだと思います。
こんな感じでてきとーにやったらできました。問題ないのかどうかちょっと心配。

class User < ActiveRecord::Base
  has_and_belongs_to_many :friends, :class_name => 'User', :join_table => 'friends',
                          :foreign_key => 'user_id', :association_foreign_key => 'friend_id'
end

あとは

@user = User.find(1)
@user.friends

こんな感じです。
↓は発行されたSQL。これ見る限り大丈夫っぽい。・・・多分。

SELECT * FROM users INNER JOIN friends ON users.id = friends.friend_id WHERE (friends.user_id = 1 )