2012-10-15 2 views
0

누구나 데이터베이스에서 사용자 친구 (우정과 양방향으로의 우정) 및 팔로어를 관리하는 방법을 구현했습니다.레일의 우정/팔로어 기능

은 내가 달성하고자하는 것을 의미합니다. 1) user1은 user2에게 연결 요청을 보냅니다. 2) user2는 user1을 친구 또는 팔로워로 수락하거나 거부합니다. 3) user2가 user1을 친구로 받아들이면이 우정은 양방향 우정입니다.

내가 처리 할 생각 : 1) 우정 테이블을 만듭니다. 2) 사용자를 유지 관리하는 관계 열은 follower/friend입니다. 3) 사용자가 친구 인 경우 양쪽 끝에 친구 관계를 유지하기 위해 두 항목을 만듭니다.

이 경우를 처리하는 가장 좋은 방법 (gems ​​/ plugin)을 제안 해 주시겠습니까?

+0

당신의 접근 방식은 괜찮아 보입니다. 그것을 구현해야합니다. –

답변

1

사용자가 Pending과 친구 accept/reject는 요청이는 Accepted/Rejected

0

로 변경해야 할 때 당신이 할 수있는이어야 우정 status에 대한 요청을 보낼 때 당신은 다음과 같은 필드

1] user_id 
2] friend_id 
3] status 

처음에는 우정을 만들어야합니다 열이있는 테이블을 생성하십시오 - USER_A, USER_B, RELATION. 이제 USER_A와 USER_B 사이의 관계를 정의하는 상수 또는 enum을 생성 할 수 있습니다. 예 : 0은 관계 없음, 1은 USER_A -> USER_B (사용자 A는 사용자 B를 따름), 2는 USER_B -> USER_A (사용자 B는 사용자 A를 따름), 3은 USER_A < -> USER_B를 나타냅니다 (양방향을 의미 함) 히스토리가 필요하지 않은 경우 동일한 행을 갱신 할 수 있습니다. 그렇지 않으면 관계가 변경 될 때 행을 하나 더 추가 할 수 있습니다. 희망은 작동합니다!

0

ActiveRecord 모델에 대해 좋아요를 언급하고 언급 한 socialization 보석을 확인하실 수 있습니다.