0

在用户通过omniauth(Twitter、Facebook 或OpenID)成功登录后,我希望rails 更新或存储评论。

  1. 一个(未登录的)用户填写评论表单。发布那个。
  2. 用户获得一个omniauth 页面,她可以在其中选择登录方法:Twitter、Facebook 或 OpenID。
  3. 一旦用户从 oAuth 成功返回,我想存储(或发布)评论。

我有这个工作,使用会话变量,但这不是非常线程安全的:如果用户在同一个会话中打开多个评论选项卡,它将中断。

我应该将评论以未发布状态保存到数据库中,并在返回后切换吗?如果是这样,如何知道如何切换正确的评论?问题类似于上述会话问题。

有没有办法简单地将评论对象与omniauth一起传递并在用户成功登录返回时将其接收回来?

或者我可以传递一些哈希字符串,我可以在成功返回后提取这些字符串?

编辑:完全重写以简化和澄清问题。

4

1 回答 1

1

将帖子 ID 与会话中的评论文本一起存储。成功验证后,使用存储的 id 找到帖子并为其构建评论对象。

更新- 如果身份验证失败,请删除所有此类条目。

于 2011-02-24T04:44:03.073 回答