Несколько has_many: через - PullRequest
6 голосов
/ 02 марта 2012

В объектной модели у меня есть

has_many :likes
has_many :hates
has_many :users, :through => :likes
has_many :users, :through => :hates

Как получить список пользователей для лайков?Например, object.users <--- но как мне указать «лайки» или «ненависти»? </p>

Ответы [ 3 ]

6 голосов
/ 02 марта 2012

Вам нужно дать этим двум различным ассоциациям разные имена.Как насчет

has_many :likes
has_many :hates
has_many :likers, :through => :likes, :source => :user
has_many :haters, :through => :hates, :source => :user
1 голос
/ 02 марта 2012

Кажется, мне нужно добавить источник тоже.Если нет, Rails будет искать лайков / лайков в лайках.

has_many :likes
has_many :hates
has_many :likers, :through => :likes, :class_name => 'User', :source => 'user'
has_many :haters, :through => :hates, :class_name => 'User', :source => 'user'
0 голосов
/ 02 марта 2012

Вы можете сделать это как:

has_many :user_likes, :through => :likes, :class_name => 'User'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...