2009-10-29 123 views
2

在控制器我有2个动作Ruby on Rails的会话=零

def action1 
    session[:test]="test" 
    render :text => session[:test] # output test 
end 

def action2 
    render :text => session[:test] # output nil 
end 

我执行第一动作1所以该会话被设置 然后我执行动作2但会话[:试验]为nil

所以我究竟做错了什么?

+0

您使用的是什么类型的会话存储? 'ActionController :: Base.session_store' – 2009-10-29 23:32:27

+0

我正在使用active_record_store – Mathieu 2009-10-30 00:01:48

+1

你为什么使用active_record_store?有没有原因。用cookie_store免费得到这么多。 – 2009-10-30 04:45:01

回答

1

Cookies是否可用? 假设您使用默认的基于cookie的session_store,请确保您在测试时启用了Cookie。

Schema in place? activerecord session_store需要一个sessions表,其中包含正确的列(id,session_id,data)More info

+0

模式就位,实际上似乎会话只设置了第一个初始化它。 当我进行修改时,会话值不会更新。 还有什么比做: session [:test] =“test” session [:test] =“test2” – Mathieu 2009-10-30 16:37:21