ruby on rails在活跃记录中获得双向朋友关系?

时间:2012-03-12 17:26:42

标签: ruby-on-rails ruby-on-rails-3 activerecord

我试图弄清楚如何做一个相互的双向关系,即:

user_id  friend_id
  1          2
  2          1

在上面的用户1和用户2中,如果user_id = 1 friend_id = 2 friend_id = 2user_id = 2 {{1}}的{​​{1}}与表中的朋友相同,则他们就是朋友。如何统计ActiveRecord中的所有双向相互关系?

2 个答案:

答案 0 :(得分:2)

您要找的是has_and_belongs_to_many relationship

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 :(得分:1)

阅读Micheal Heartl Ruby on Rails教程的最后一章:通过示例学习Rails,他很好地解释了这些示例。这里有免费的在线版本。

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

看看最后一章。我希望它有所帮助。