Est-il possible d'avoir plusieurs has_many :par le biais de relations qui traversent les uns les autres dans les Rails? J'ai reçu la suggestion de le faire comme une solution pour l'autre question que j'ai posté, mais ont été incapables de le faire fonctionner.
Les amis sont une reprise cyclique de l'association grâce à une table de jointure. L'objectif est de créer un has_many :through pour friends_comments, afin que je puisse prendre de l'Utilisateur et de faire quelque chose comme utilisateur.friends_comments pour obtenir toutes les observations faites par ses amis dans une seule requête.
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
Cela ressemble beaucoup, et du bon sens, mais ne fonctionne pas pour moi. C'est l'erreur que je reçois dans la partie pertinente lorsque j'essaie d'accéder à un utilisateur friends_comments:ERROR: column users.user_id does not exist
Quand je viens de l'entrée de l'utilisateur.des amis, qui fonctionne, c'est de la requête qu'il exécute:
Donc il semble que c'est tout à fait oublier à propos de l'origine has_many grâce à l'amitié de relation, est inappropriée d'essayer d'utiliser la classe Utilisateur une table de jointure.
Suis-je en train de faire quelque chose de mal, ou est-ce tout simplement pas possible?