根据我在应用程序中看到的内容,如果我的控制器使用AngularJs $ http.get请求,则我无法在处理此请求的控制器中更新会话数据,因为render:json =>数据类型响应不会在客户端上更新会话cookie。我不确定这是否是真的,但似乎正在发生。
如果它是真的,尽管例如,如果我使用devise并初始化一个会话变量,例如session#create中的session [:foo] =“ bar”,然后我有一个执行$ http.get的angular模块,它由例如account#my_method处理,如下所示
def my_method
session[:foo]="baz"
[do something]
render :json => {status: "OK"}
end
session [:foo]的更改将不会保留在用户的会话cookie中,因此,下一次用户单击控制器会话时,[[foo]]仍将等于“ bar”,而不是“ baz”。
这似乎不太可能,但是看起来就像在调试应用程序时看到的一样。如果是这样,使用数据库或内存缓存会话存储会更好地工作,因为更改将在服务器端进行,而不需要更新客户端cookie?或者在使用AngularJs中的$ http.get之类的Ajax类型方法时,是否有一种方法可以处理会话更新