Я хочу сделать модельный класс, который ассоциируется с собой на Rails. В основном, у пользователя есть друзья, которые также являются пользователями. Я набрал следующее внутри класса модели User:
has_many :friends,
:class_name => "User",
:foreign_key => :user_id,
:finder_sql => %{SELECT users.*
FROM
users INNER JOIN friends
ON (users.id = friends.user_id OR users.id = friends.friend_id)
WHERE users.id <> #{id}}
Но забавный факт заключается в том, что кажется, что этот finder_sql вызывается дважды, когда я набираю User.first.friends на irb. Почему?