Ruby-on-Rails: múltiples has_many: ¿posible?

¿Es posible tener múltipleshas_many :through relaciones que se cruzan en Rails? Recibí la sugerencia de hacerlo como solución para otra pregunta que publiqué, pero no he podido hacer que funcione.

Los amigos son unasociación cíclica a través de una mesa de unión. El objetivo es crear unhas_many :through parafriends_commentspara poder tomar unUser y hacer algo comouser.friends_comments para obtener todos los comentarios hechos por sus amigos en una sola 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

Esto se ve muy bien y tiene sentido, pero no funciona para mí. Este es el error que obtengo en la parte relevante cuando trato de acceder a los amigos_comentarios de un usuario:
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)))

Cuando acabo de ingresar user.friends, que funciona, esta es la consulta que ejecuta:
: SELECT "users".* FROM "users" INNER JOIN "friendships" ON "users".id = "friendships".friend_id WHERE (("friendships".user_id = 1) AND ((status = 2)))

Parece que se está olvidando por completo del originalhas_many a través de una relación de amistad, y luego está tratando de usar de manera inapropiada la clase Usuario como una tabla de unión.

¿Estoy haciendo algo mal o simplemente esto no es posible?

Respuestas a la pregunta(4)

Su respuesta a la pregunta