Rails 4.1会话序列化

时间:2014-04-04 02:49:06

标签: ruby ruby-on-rails-4

我正在使用Rails 4.1.rc2。它即将推出的Rails 4.1现在已经对会话序列化的方式进行了更改commit此处link to guide

我无法将对象存储在会话eq中

session[:user] = User.new

当我访问session[:user]时,我得到String

任何方式恢复旧的?或者在Rails 4.1会话中存储对象

1 个答案:

答案 0 :(得分:1)

# app/controllers/application_controller.rb
helper_method :session_user
def session_user
  @session_user ||= Marshal.load(session[:user])
end

def set_session_user(user)
  session[:user] = Marshal.dump(user)
end

# set
set_session_user(User.new)

# reconstitute and perform operation
session_user.awesome = 'rad'
session_user.save!

请参阅http://www.ruby-doc.org/core-2.1.1/Marshal.html