Ceci est la suite de cette question: Original Question (SO)Rails - Deux voies modèle "amitié" (suite)
La réponse à cette question implique l'ensemble des modèles suivants:
class User < ActiveRecord::Base
has_many :friendships
has_many :friends, :through => :friendships #...
end
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => 'User', :foreign_key => 'friend_id'
end
<% for friendship in @user.friendships %>
<%= friendship.status %>
<%= friendship.friend.firstname %>
<% end %>
Cela fonctionne bien si je dis, j'ai un utilisateur et je veux obtenir toutes les "amitiés" pour lesquelles son identifiant est le: user_id FK sur le modèle de l'amitié. Mais, quand je lance quelque chose comme
@user.friendships.friends
Je voudrais à renvoyer tous les enregistrements d'utilisateurs pour lesquels l'utilisateur est soit l': utilisateur ou le: ami dans l'amitié -, en d'autres termes, retourner toutes les amitiés auquel cet utilisateur est impliqué.
Espérons que ce qui précède a du sens. Je suis encore tout à fait nouveau sur les rails et j'espère qu'il y a un moyen de le faire avec élégance sans faire une simple table de liaison standard ou fournir du SQL personnalisé.
Merci!
Tom
Il existe une question similaire avec une bonne réponse trouvée ici: [tableau de liens avec des clés étrangères] (http://stackoverflow.com/questions/623909/rails-model-with-foreignkey-and-link-table/623956#624261) – Tilendor