Доступ к двум сторонам отношений пользователь-пользователь в рельсах - PullRequest
1 голос
/ 04 мая 2010

В основном у меня есть модель пользователей в моем приложении rails и модель фанатов, чтобы пользователи могли стать «фанатами» друг друга.

В моей пользовательской модели у меня есть:

has_many :fanships
has_many :fanofs, :through => :fanships

В моей модели фанатов у меня есть:

belongs_to :user
belongs_to :fanof, :class_name => "User", :foreign_key => "fanof_id"

Моя таблица поклонников в основном состоит из: id,: user_id и: fanof_id. Все это прекрасно работает, и я могу видеть, какие пользователи являются фанатами определенного пользователя:

<% @user.fanofs.each do |fan| %>
    #things
<% end %>

У меня вопрос, как я могу получить список пользователей, которые являются поклонниками этого конкретного пользователя?

Мне бы хотелось, чтобы у меня было что-то вроде @ user.fans, но если это невозможно, какой самый эффективный способ сделать это?

Спасибо!

1 Ответ

2 голосов
/ 04 мая 2010

Добавить в модель пользователя:

has_many :my_fanclubs, :class_name => 'Fanship', :foreign_key => 'fanof_id'
has_many :fans, :through => :my_fanclubs, :source => :user, :class_name => 'User'

(не тестировалось)

...