保存当前用户的答案,以便稍后显示(无用户)RAILS

时间:2017-06-24 12:39:22

标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-5

我正在构建一个人们可以回答问题的调查应用。根据他们的回答,他们会看到个性化的展示页面。例如,如果问题为'What is your name?'且答案为'Bob',我就无法在展示页面上显示'Hi there Bob'

现在用户不必登录是非常重要的,所以现在我在考虑是否应该在会话中存储所有答案,或者我应该将所有内容保存到数据库中。如果我将它保存到数据库,如果没有用户,我如何做current_user.name之类的事情。在没有实际用户的情况下,显示当前用户在节目页面中的数据似乎是不可能的。

这里最好的解决方案是什么?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以使用session.id作为密钥将所有信息存储在数据库中。这样,用户不必登录,会话cookie不会膨胀,但是,当然,当cookie不存在(删除,其他浏览器等)时,您无法找到用户的信息。

答案 1 :(得分:2)

在会话中存储信息可确保当用户返回时,您知道他们是谁,除非他们删除了会话变量。

这可能是您的失败:我知道您不希望用户拥有登录信息,但每次调查的唯一标识符如何在用户“以后再保存”时为其提供?返回后,您可以询问他们之前发给他们的唯一标识符。您还可以在“保存以供日后使用”时向用户发送电子邮件。电子邮件可能包含一个链接,而该链接又包含一个唯一标识该调查的参数。