Rails 5.2和Ahoy 2 - “未定义的方法`visitor_token'为nil:NilClass”

问题描述 投票:0回答:1

我正在运行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没有在数据库中创建新的访问记录。

在此先感谢您的帮助!

mongoid ruby-on-rails-5.2 ahoy
1个回答
0
投票

使用Ahoy 2.0,您可以访问模型需要作为 class Ahoy::Visit < ApplicationRecord # code here end 的范围 - 另一个解决方法是重新安装Ahoy,它将把访问和事件放在正确的位置。

© www.soinside.com 2019 - 2024. All rights reserved.