Questa è una continuazione di questa domanda: Original Question (SO)Rails - a due vie modello di "amicizia" (segue)
La risposta a questa domanda ha comportato la seguente serie di modelli:
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 %>
Funziona bene se dico, ho un utente e voglio ottenere tutte le "amicizie" per le quali il suo id è: user_id FK sul modello Friendship. Ma, quando corro qualcosa come
@user.friendships.friends
vorrei per tornare tutti i record utente per il quale l'utente è sia il: utente o il: amico in amicizia - così, in altre parole, restituire tutte le amicizie in quale utente è coinvolto
Speriamo che quanto sopra abbia senso. Sono ancora abbastanza nuovo per le rotaie e spero che ci sia un modo per farlo elegantemente senza fare solo una tabella di collegamento standard o fornire SQL personalizzato.
Grazie!
Tom
c'è una domanda simile, con una buona risposta trovate qui: [tabella di collegamento con le chiavi esterne] (http://stackoverflow.com/questions/623909/rails-model-with-foreignkey-and-link-table/623956#624261) – Tilendor