0
我正在使用Rails 4.1.rc2。即將推出的Rails 4.1已經發生了變化,會話序列化的方式現在在commit這裏和link to guide。Rails 4.1會話的序列化
我沒有更多可以到我的對象存儲在會話EQ
session[:user] = User.new
當我訪問session[:user]
我得到一個String
。
任何方式恢復到舊的?或存儲對象的Rails 4.1會話
我正在使用Rails 4.1.rc2。即將推出的Rails 4.1已經發生了變化,會話序列化的方式現在在commit這裏和link to guide。Rails 4.1會話的序列化
我沒有更多可以到我的對象存儲在會話EQ
session[:user] = User.new
當我訪問session[:user]
我得到一個String
。
任何方式恢復到舊的?或存儲對象的Rails 4.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!
我只是想提一提,實在是一個壞主意,複雜的對象存儲類似的ActiveRecord模型到會話中。最好將id存儲在會話中,並從數據庫重新加載對象。 – spickermann