无需身份验证即可在rails中存储会话

时间:2017-03-02 19:30:37

标签: ruby-on-rails angularjs

我已经读过可以在没有用户身份验证的情况下将会话存储在rails中(引用this),但是我不确定如何在我的用户模型中进行此操作。我基本上是在创建一个调查,只想存储用户的IP地址和ID(我不能为IRB目的提供任何其他可识别信息)。用户将被另一个模型引用,我希望调查的响应由当前用户拥有。提示?

2 个答案:

答案 0 :(得分:0)

您可以使用securerandom为用户生成唯一ID

require 'securerandom'
SecureRandom.uuid

然后,您可以将其存储在会话中以跟踪用户

def survey_user
  session[:survey_user] ||= SecureRandom.uuid
  SurveyUser.find_or_create_by(id: SecureRandom.uuid)           
end

现在,当用户开始进行您的调查时,您可以在数据库中找到他们的模型,并可以创建与他们的答案的关联

答案 1 :(得分:0)

您实际上不需要创建会话。它将在需要时自动创建,即当您在其中存储内容时。你应该只需要:

session[:id]         = ...
session[:ip_address] = ...

(虽然根本不需要存储IP地址,因为它应始终在request对象中可用)

相关问题