ruby on rails получает двухсторонние дружеские отношения в активной записи? - PullRequest
2 голосов
/ 12 марта 2012

Я пытаюсь выяснить, как сделать взаимные двусторонние отношения, а именно:

user_id  friend_id
  1          2
  2          1

В приведенном выше пользователь 1 и пользователь 2 были бы друзьями, если оба user_id = 1 имеют friend_id = 2, а friend_id = 2 имеет user_id = 2 в качестве друга в таблице. Как рассчитать все двусторонние взаимоотношения в ActiveRecord?

Ответы [ 2 ]

2 голосов
/ 12 марта 2012

То, что вы ищете, это has_and_belongs_to_many отношение :

class User < ActiveRecord::Base
  has_and_belongs_to_many :friends, :class_name => "User",
                                    :foreign_key => "this_user_id",
                                    :association_foreign_key => "other_user_id"
end

Пример из §4.4.2.1 .

1 голос
/ 12 марта 2012

Прочитайте последнюю главу учебника Михаэля Хартла по Ruby on Rails: Изучите Rails by Example, где он очень хорошо объясняет подобные примеры.Здесь есть бесплатная онлайн-версия.

https://www.railstutorial.org/book/following_users

Посмотрите на последнюю главу.Я надеюсь, что это помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...