我正在使用Rails 4.1.rc2。它即将推出的Rails 4.1现在已经对会话序列化的方式进行了更改commit此处link to guide。
我无法将对象存储在会话eq中
session[:user] = User.new
当我访问session[:user]
时,我得到String
。
任何方式恢复旧的?或者在Rails 4.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!