Rails 会话不会持续

Bra*_*ams 5 session ruby-on-rails

我无法在本地环境和外部暂存环境中保持 Rails 会话。现在我只是在做一些基本的事情,比如session[:cart_id]=1在我的一个控制器中。如果我重新加载页面会话出现空{}。我一定遗漏了一些基本的东西,因为我在网上找不到任何关于这很常见的东西。

更新 1

即使是最简单的代码也显示会话不持久,例如我可以做一些像session[:counter] = session[:counter].to_i + 1我的动作一样简单的事情,然后= debug session在我的视图中,每次我刷新浏览器时,我都会得到:

{} {"session_id"=>"280031b7eb3b4bf612da85acc8815b3b", "counter"=>1}

并且session_id每次都会生成一个新的。

更新 2

:domain => :all从我的会话存储中删除了该选项,事情看起来好多了,但仍然没有持久化。现在session_id只生成一次,所以它一直存在。但是如果我在会话中存储一个整数,它仍然不会持续到下一个请求。

小智 6

我有同样的问题,这让我发疯。

原来,我有一个protect_from_forgery在我ApplicationController里面默默地用一个NullSession.

我在跑步时注意到了这一点raise session.class.inspect

protect_from_forgery with: :exception相反,使用可以正确地揭示潜在的问题。