0

任何人都实现了一种管理用户朋友(两种方式的友谊)和数据库中的关注者的方式。

意味着我想要实现的目标:1)user1向user2发送连接请求。2)然后 user2 接受 user1 作为朋友或关注者或拒绝它。3) 如果 user2 接受 user1 作为朋友,那么这个友谊就是双向友谊。

我正在考虑处理这个问题:1)我将创建一个友谊表。2) 维护用户的关系栏是follower/friend。3)如果用户是朋友,那么我将创建两个条目以从两端维护朋友关系。

您能否建议我处理这种情况的最佳方法(宝石/插件)。

4

3 回答 3

1

您应该与以下领域建立友谊

1] user_id
2] friend_id 
3] status

起初,当用户发送好友请求时status必须是Pending,当好友accept/reject请求时,它应该更改为Accepted/Rejected

于 2012-10-15T11:11:37.500 回答
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(这意味着双向。)然后,如果您不需要历史记录,则可以更新同一行,否则您可以在关系更改时再添加一行。希望有效!

于 2012-10-15T14:17:05.013 回答
0

您可以查看为您的 ActiveRecord 模型提供喜欢、关注和提及的社交gem。

于 2012-10-15T14:21:56.570 回答