나는 (친구, 가족, 이웃 등)에 대해 방향없는 관계를 허용하려는 사람 모델이 있습니다. 한 사람을 다른 사람의 친구로 표시하면 둘 다 있습니다. 서로의 친구.ActiveRecord에서 친구 관계를 모델로 만드는 방법
id person_a_id person_b_id relationship_type
-- ----------- ----------- --------------------
1 1 2 friend
2 1 3 neighbor
을이 날은 말한다 무엇 :
Class People
id
name
Class Relationship
id
person_a_id
person_b_id
relationship_type
이제 가정 우리는 어떤 사람들의 데이터 (레코드 ID를 = 1,2,3,4,5)이이 관계 테이블이 보일 수 있습니다 어떻게해야 사람 1에게는 친구 (사람 2)와 이웃 (사람 3)이 있습니다. 또한 Person 2에는 친구 (Person 1)가 있고 Person 3에는 이웃 (Person 1)이 있다고 알려줍니다.
나는 이것을 Self-Referential Association과 함께 할 수 있다고 생각하지만 깨끗한 방법이 있다고 생각합니다. 내가 뭔가를 놓치고 거기에 보석이있어, 내 모든 필요를 충족시키기 위해 기다리고있다 (적어도이 질문이가는 한)? 아니면 하나를 써야합니까?
자체 참조'has_many : through' 실제로 길을 가야하는 것입니다. – meagar
내 총 친구는 inverse_friends + 친구입니까? –