同一テーブルの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 )