2012-10-15 23 views
0

任何人都已經實現了一種管理方式來管理用戶朋友(雙向友誼)和數據庫中的追隨者。鐵路中的友誼/追隨者功能

意味着我想要達到的目標: 1)user1發送一個連接請求給user2。 2)然後user2接受user1作爲朋友或追隨者或拒絕它。 3)如果user2接受user1作爲朋友,那麼這種友誼就是雙方的友誼。

我在想什麼來處理這個問題: 1)我會創建一個友誼表。 2)維護用戶的關係欄是追隨者/朋友。 3)如果用戶是朋友,那麼我將創建兩個條目來維護來自兩端的朋友關係。

你能否建議我最好的辦法(寶石/插件)來處理這種情況。

+0

你的方法看起來不錯。你應該實現它。 –

回答

1

您應該創建以下字段

1] user_id 
2] friend_id 
3] status 

起初的友誼,當用戶發送的請求,友誼status必須Pending當朋友accept/reject的要求應該是變化的Accepted/Rejected

0

你可以用列創建一個表 - USER_A,USER_B,RELATION。現在,您可以創建一個常量或枚舉來定義USER_A和USER_B之間的關係。對於例如0代表無關係,1代表USER_A - > USER_B(用戶A跟隨用戶B),2代表USER_B - > USER_A(用戶B跟隨用戶A),3代表USER_A < - > USER_B(表示雙方)。 然後可以更新同一行,如果您不需要歷史記錄,則可以在關係更改時添加一行。 希望工程!

0

您可以查看socialization gem,它爲您的ActiveRecord型號提供喜歡,以下和提及。