Ruby-on-Rails: Vários has_many: através do possível?

É possível ter múltiploshas_many :through relacionamentos que se cruzam no Rails? Recebi a sugestão de fazê-lo como solução para outra pergunta que postei, mas não consegui fazê-lo funcionar.

Amigos são umassociação cíclica através de uma tabela de junção. O objetivo é criar umhas_many :through parafriends_comments, para que eu possa dar umaUser e fazer algo comouser.friends_comments para obter todos os comentários feitos por seus amigos em uma única consulta.

class User
  has_many :friendships
  has_many :friends, 
           :through => :friendships,
           :conditions => "status = #{Friendship::FULL}"
  has_many :comments
  has_many :friends_comments, :through => :friends, :source => :comments
end

class Friendship < ActiveRecord::Base
  belongs_to :user
  belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
end

Parece ótimo e faz sentido, mas não está funcionando para mim. Este é o erro que estou recebendo na parte relevante quando tento acessar os friends_comments de um usuário:
ERROR: column users.user_id does not exist<br>: SELECT "comments".* FROM "comments" INNER JOIN "users" ON "comments".user_id = "users".id WHERE (("users".user_id = 1) AND ((status = 2)))

Quando eu apenas digito user.friends, o que funciona, esta é a consulta que ele executa:
: SELECT "users".* FROM "users" INNER JOIN "friendships" ON "users".id = "friendships".friend_id WHERE (("friendships".user_id = 1) AND ((status = 2)))

Parece que está esquecendo completamente o originalhas_many através do relacionamento de amizade e, em seguida, tenta inapropriadamente usar a classe Usuário como uma tabela de junção.

Estou fazendo algo errado ou isso simplesmente não é possível?

questionAnswers(4)

yourAnswerToTheQuestion