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