如何使用rails 3在cookie中存储哈希值

时间:2011-05-23 19:56:28

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

我想为登录实现一个记住我的选项

因此我想将用户名和散列密码存储到cookie中,并在用户返回该站点时进行检查。

我试着做

cookies[:user] = { :value => {:username => @user.username, :password =>
@user.hashed_password}, :expires => 1.month.from_now }

它保存了cookie,但我无法读取其属性

cookies[:user].username # doesn't work
顺便说一句,它是实现RememberMe的最佳解决方案吗?

3 个答案:

答案 0 :(得分:3)

最好使用session方法来设置这些类型的东西。您可以使用:cookie_store中的默认config/initializers/session_store.rb设置随时将会话保留在Cookie中。

session[:user] = { :foo => { :bar => 'woot' } }

然后......

session[:user][:foo][:bar] # => 'woot'

答案 1 :(得分:3)

从我read开始,人们只能在cookie中存储字符串。为了存储其他数据结构,需要序列化数据,例如JSON或YAML。

我猜Session对象有这个内置的

答案 2 :(得分:-2)

也许this answer可以帮到你