使用devise我希望在注销时将旧会话中的一些值保存到新会话中

时间:2012-08-29 10:09:22

标签: devise ruby-on-rails-3.2

这是我会议的内容:

Session:
{
 "session_id"=>"0aee1c4fbb70c027099958aea9c06ddc",
 "should_activate_backbone"=>true, 
 "return_to"=>"/",
 "split"=>{"login_signup"=>"New"},   
 "_csrf_token"=>"xY/pVjP0Q2aQVbKO0WiEwkgmadEWOnV9n9EKvM+jJh4="
}

我正在用拆分进行AB测试。因此,如果用户注销我想保留变体。 所以在新的会话中,我需要放回旧会话的这一部分:

"split"=>{"login_signup"=>"New"}

我想在控制器中以某种方式这样做。

1 个答案:

答案 0 :(得分:1)

我设法使用after_filter

重置新会话中的值
class Authentication::SessionsController < Devise::SessionsController
  after_filter :set_back_experiments, :only => [:destroy]
  def destroy
    @split = session[:split]
    super
  end
private

  def set_back_experiments
    session[:split] = @split
  end
end