尝试使用会话,但得到奇怪的结果。
以下 RSpec 代码似乎正在生成 2 个单独的会话:
visit start_path
post session_path, { foo: "bar" }
在 start_path 控制器调用的方法中:
session[:started] = 'yes' puts "Start: #{session.inspect}"
在会话控制器中:
def create
session[:foo] = params[:foo]
head :created
puts "Sessions controller: #{session.inspect}"
end
输出如下所示:
Start: {"session_id"=>"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ...
Sessions controller: {"session_id"=>"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" ...
会话 ID 不同。
这是因为 RSpec 正在创建 2 个会话,post 调用创建了一个单独的会话,还是我的应用程序正在做一些事情来分离会话?
为什么要创建 2 个会话?
尝试更改create
为另一个名称,但这并没有什么不同。
使用 cookie 存储。