我正在运行Rails 5.2和令人敬畏的Ahoy gem,并使用mongoid作为ORM。
在主页控制器中,我正在调用current_visit.visitor_token
,这会产生以下错误:
MONGODB | ds111336.mlab.com:11336 | heroku_1f375nv7.find | STARTED |
{"find"=>"ahoy_visits", "filter"=>{"visit_token"=>"4f86bf0d-f694-4a46-
b1fb-4ff48722e5c5"}, "sort"=>{"_id"=>1}, "limit"=>1,
"singleBatch"=>true}
MONGODB | ds111336.mlab.com:11336 | heroku_1f375nv7.find | SUCCEEDED |
0.048124999999999994s
Completed 500 Internal Server Error in 297ms (ActiveRecord: 202.8ms)
NoMethodError (undefined method `visitor_token' for nil:NilClass):
Cookie中存储的ahoy_visit
值为b5b4fd64-ec42-4e6d-9740-e394ed4a24da
,但Ahoy似乎正在搜索其他visit_token
(如上所述)。
初始化/ ahoy.rb:
class Ahoy::Store < Ahoy::DatabaseStore
end
# set to true for JavaScript tracking
Ahoy.api = true
Ahoy.server_side_visits = true
如果我从我的浏览器中清除网站数据(或在隐身窗口中打开一个新会话),则在我等待另一天之前不会发生错误(我猜测会议到期之前)。
我已经搜索了整个代码,无法弄清楚为什么Ahoy没有在数据库中创建新的访问记录。
提前感谢您的帮助!
答案 0 :(得分:0)
使用Ahoy 2.0,您访问的模型需要这样确定范围
class Ahoy::Visit < ApplicationRecord
# code here
end
-另一个解决方法是重新安装Ahoy,它将“访问”和“事件”放置在正确的位置。