has_many i has_many:through i 2x ten sam model

Mam takie proste 3 modele.
User, Entry i EntryVote.

  • User może założyć jedno lub więcej entries.
  • Entry należy do jednego usera.
  • User może zagłosować na entry.
  • Entry może mieć wielu głosujących userów.

Nie bardzo wiem jak zrobić, że w modelu User mam dwa razy :entries : has_many :entries (do odnalezienia entries stworzonych przez uzytkownika) i has_many :entries, through: :votes (do odnalezienia entries na ktore uzytkownik glosowal)
Pewnie powinienem jakoś zmienić nazwe drugiego :entries na np. :voted_entries, ale nie bardzo wiem jak (jakos musze chyba dac znac, ze to voted_entries to model entries):

  has_many :entries
  has_many :comments
  has_many :entry_votes
  has_many :entries, through: :entry_votes
  belongs_to :user
  has_many :comments
  has_many :entry_votes
  has_many :users, through: :entry_votes
  belongs_to :user
  belongs_to :entry

Będę wdzięczny za podpowiedź jak prawdiłowo powinny być zestawione relacje.

Jeszcze nie przetestowałem, ale w jednym z railcastów znalazłem chyba to, czego szukałem.
W user.rb dałem has_many :voted_entries, through: :entry_votes, source: :entry
Chociaż muszę przyznać, że powoli zaczynam się gubić w tych liczbach pojedynczych i mnogich.

edit: przetestowałem, działa :slight_smile: