重定向后会话丢失

时间:2016-04-13 12:51:51

标签: ruby-on-rails session ruby-on-rails-4

当用户访问index时,我将他重定向到show。正如您在index中所见,我在设置

中设置变量
  skip_before_filter :verify_authenticity_token, only: :show


  def show
     debugger
     render inline: "<h3>hello</h3>"
  end


  def index
     session[:user] = "hans"
     debugger
     redirect_to action: "show"
  end

当我在动作show中使用调试器时:

   session 
     =>  #<ActionDispatch::Request::Session:0x7f9a8e0882e0 not yet loaded>

然后当我强制用以下内容初始化会话时:

   session[:init] = true

然后有一个会话,session[:user] == nilsession_id也与我session_id index中的Charset charset = Charset.forName("US-ASCII"); try (BufferedReader reader = Files.newBufferedReader(file, charset)) { String line = null; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException x) { System.err.format("IOException: %s%n", x); } 不同。

我错了什么? 为什么重定向后会启动新会话?

由于

1 个答案:

答案 0 :(得分:0)

我怀疑调试器是你的问题,因为你正在中断检索会话变量的过程。如果我执行以下操作:

class PostsController < ApplicationController
  def index
    session[:user] = "hans"
    redirect_to action: "show"
  end

  def show
    render inline: "USER:" + session[:user]
  end
end

我输入网址: / posts / index

我的输出是:&#34;用户:Hans&#34;