【问题标题】:How to create friendships between devise users and get the list of friends of each user through api?如何在设计用户之间建立好友关系并通过api获取每个用户的好友列表?
【发布时间】:2012-11-16 13:08:27
【问题描述】:

我在我的 Web 应用程序中使用 devise 进行身份验证,并且我的 Web 应用程序也响应 iPhone 应用程序。到目前为止,我只完成了身份验证,因此当 iPhone 应用程序将用户名和密码发送为

http://localhost:3000/login.json  -d "{'user' : { 'username' : 'sample@yahoo.co.in','password' : 'password'}}"

响应是

{"user":{"authentication_token":"LayzZw3s3gsNMFRJp1JR","email":"sample@yahoo.co.in","username":"sample@yahoo.co.in"}}

但现在我需要在 iPhone 应用程序的用户之间建立友谊,即用户必须通过 API 向另一个用户发送好友请求,而另一个用户应该收到请求

用户接受请求后,应将用户添加到用户的好友列表中,并在用户需要时通过调用API显示用户的好友

我该怎么做?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 api


    【解决方案1】:

    正如 m_x 所说,这与身份验证无关。

    您应该创建的是具有多槽关系的用户之间的自引用关联。

    一个用户通过友谊有很多朋友(同时有很多 inverse_friends)。

    这在 railscast #163 http://railscasts.com/episodes/163-self-referential-association 中有很好的解释

    在您的场景中,inverse_friend 应被视为“好友请求”,并且一旦用户同时拥有好友和反向好友关系,则应将“好友关系”视为已接受。

    【讨论】:

      【解决方案2】:

      这与身份验证几乎没有关系。

      您需要的是一个FriendshipRequest 模型,它同时属于“询问”用户和“询问”其他用户。当用户想要请求某人成为他的朋友时,他只需在您的数据库中创建一个FriendshipRequest。当其他用户查看他的页面时,他看到了该友谊请求并且可以接受它(在数据库中创建一个新的 Friendship 对象,它属于两个用户)或丢弃它(销毁 FriendshipRequest 记录或将其标记为已拒绝供其他用户查看)。

      总而言之,您甚至可以只使用带有 accepted 布尔标志的 Friendship 模型。其余的是经典的导轨。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-24
        • 2014-07-10
        • 1970-01-01
        • 2016-12-06
        相关资源
        最近更新 更多