【发布时间】:2015-08-26 16:09:27
【问题描述】:
我在 Heroku 上运行一个简单的网站,我注意到在运行应用程序时发生了一些奇怪的事情。似乎大约 50-60% 的用户在登录我的数据库时报告了 nil session_id。
我使用 active_record_store 作为会话处理程序,使用 Postgres 作为我的数据库服务器。我使用 cookie_store 得到了类似的结果,所以我不确定我做错了什么。我唯一的猜测是用户提出的第一个请求,id 可能尚未填充。会话表的条目数正确,但我的跟踪表没有。
示例代码
class CaptionController < ApplicationController
def index
@image = Image.order("RANDOM()").first
Tracking.log(session.id, Tracking::VIEW_CAPTION_ON_IMAGE, @image.id)
end
上面的代码导致 50% 的时间,会话在它记录到的表中为零。
【问题讨论】:
-
你看到的和你设置
@image的方式一样吗?你在哪里设置/检索session? -
根据 Rails 4 API,这是由 Controller 预先设置的。我正在查看stackoverflow.com/questions/26754239/rails-4-1-6-session-id 以供参考。
标签: ruby-on-rails ruby postgresql session heroku