Rails 5.2 и Ahoy 2 - «неопределенный метод visitor_token для nil: NilClass» - PullRequest
0 голосов
/ 05 июня 2018

Я использую 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):

Значение ahoy_visit, сохраненное в файле cookie, равно 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 не создает новую запись о посещении в БД.

Спасибо за любую помощь заранее!

1 Ответ

0 голосов
/ 12 сентября 2018

С Ahoy 2.0 вы посещаете модель, которая должна быть ограничена как таковая class Ahoy::Visit < ApplicationRecord # code here end - еще один обходной путь - переустановка Ahoy, и он поместит Визит и Событие в правильное местоположение.

...