Ruby on rails 如何在ActiveRecord中建立朋友关系模型
我有一个人际关系模型,我希望允许在朋友、家人、邻居等方面建立非定向关系。当你将一个人标记为另一个人的朋友时,他们都是彼此的朋友Ruby on rails 如何在ActiveRecord中建立朋友关系模型,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个人际关系模型,我希望允许在朋友、家人、邻居等方面建立非定向关系。当你将一个人标记为另一个人的朋友时,他们都是彼此的朋友 Class People id name Class Relationship id person_a_id person_b_id relationship_type 现在,假设我们有一些人员数据记录id=1,2,3,4,5,关系表的外观如下: id person_a_id person_b_id relationship_type
Class People
id
name
Class Relationship
id
person_a_id
person_b_id
relationship_type
现在,假设我们有一些人员数据记录id=1,2,3,4,5,关系表的外观如下:
id person_a_id person_b_id relationship_type
-- ----------- ----------- --------------------
1 1 2 friend
2 1 3 neighbor
这告诉我,人1有一个朋友2和一个邻居3。它还告诉我,人2有一个朋友人1,人3有一个邻居人1
我想我可以做一些,但我认为有一个更干净的方法。我是否错过了什么,有一颗宝石在那里,等待着满足我的每一个需求,至少就这个问题而言?或者我必须写一个…自我参照关联是这里的方法 在我看来,关于这个话题最好的资源就是这个 您的用户模型人物:
has_many :friendships
has_many :friends, :through => :friendships
has_many :inverse_friendships, :class_name => "Friendship", :foreign_key => "friend_id"
has_many :inverse_friends, :through => :inverse_friendships, :source => :user
你的友谊模型关系:
belongs_to :user
belongs_to :friend, :class_name => "User"
自我参照有很多:通过确实是一条路。那么我的总朋友数是反向的朋友+朋友?