Rails 5.2 и Ahoy 2 - неопределенный метод `visitor_token' для nil:NilClass

Я использую 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 не создает новую запись о посещении в БД.

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


person benrs44    schedule 05.06.2018    source источник


Ответы (1)


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

person Abass Sesay    schedule 12.09.2018