неинициализированная константа Authlogi c :: Session :: Validation - PullRequest
0 голосов
/ 11 апреля 2020

Я обновляю сайт rails 4.2 до 6.0 и получаю

uninitialized constant Authlogic::Session::Validation

, когда пытаюсь загрузить форму, возможно потому, что модуль проверки был удален из Authlogi c и некоторых старых gem / Код все еще пытается ссылаться на него. Если я использую опцию authenticity_token = false для form_with, он исчезнет, ​​но, очевидно, я не хочу этого делать.

Итак, где-то что-то ссылается на этот старый модуль. Вот в чем проблема:

  1. Я искал всю свою базу кода для "Authlogi c :: Session :: Validation". Ничего.
  2. Я искал во всем дереве гемов "Authlogi c :: Session :: Validation". Ничего.

Это похоже на то, что он настроен как плагин для генерации токенов подлинности форм или чего-то еще, но я не знаю, где будет эта конфигурация или как ее найти. Я имею в виду, что для этой ошибки эта строка должна быть где-то, не так ли?

Вот соответствующая часть (мой код в моменты.хамл) стека вызовов, когда я получаю свою ошибку:

Application Trace | Framework Trace | Full Trace 
activesupport (6.0.2.2) lib/active_support/inflector/methods.rb:284:in `const_get' 
activesupport (6.0.2.2) lib/active_support/inflector/methods.rb:284:in `block in constantize' 
activesupport (6.0.2.2) lib/active_support/inflector/methods.rb:280:in `each' 
activesupport (6.0.2.2) lib/active_support/inflector/methods.rb:280:in `inject' 
activesupport (6.0.2.2) lib/active_support/inflector/methods.rb:280:in `constantize' 
activesupport (6.0.2.2) lib/active_support/core_ext/string/inflections.rb:68:in `constantize' 
activesupport (6.0.2.2) lib/active_support/core_ext/marshal.rb:10:in `rescue in load' 
activesupport (6.0.2.2) lib/active_support/core_ext/marshal.rb:5:in `load' 
activerecord-session_store (1.1.3) lib/active_record/session_store.rb:63:in `load' 
activerecord-session_store (1.1.3) lib/active_record/session_store.rb:20:in `deserialize' 
activerecord-session_store (1.1.3) lib/active_record/session_store/session.rb:71:in `data' 
activerecord-session_store (1.1.3) lib/action_dispatch/session/active_record_store.rb:141:in `find_session' 
rack (2.2.2) lib/rack/session/abstract/id.rb:314:in `load_session' 
actionpack (6.0.2.2) lib/action_dispatch/middleware/session/abstract_store.rb:46:in `block in load_session' 
actionpack (6.0.2.2) lib/action_dispatch/middleware/session/abstract_store.rb:54:in `stale_session_check!' 
actionpack (6.0.2.2) lib/action_dispatch/middleware/session/abstract_store.rb:46:in `load_session' 
actionpack (6.0.2.2) lib/action_dispatch/request/session.rb:235:in `load!' 
actionpack (6.0.2.2) lib/action_dispatch/request/session.rb:231:in `load_for_write!' 
actionpack (6.0.2.2) lib/action_dispatch/request/session.rb:132:in `[]=' 
actionpack (6.0.2.2) lib/action_controller/metal/request_forgery_protection.rb:397:in `real_csrf_token' 
actionpack (6.0.2.2) lib/action_controller/metal/request_forgery_protection.rb:327:in `masked_authenticity_token' 
actionpack (6.0.2.2) lib/action_controller/metal/request_forgery_protection.rb:314:in `form_authenticity_token' 
actionpack (6.0.2.2) lib/abstract_controller/helpers.rb:67:in `form_authenticity_token' 
actionview (6.0.2.2) lib/action_view/helpers/url_helper.rb:622:in `token_tag' 
actionview (6.0.2.2) lib/action_view/helpers/form_tag_helper.rb:863:in `extra_tags_for_form' 
actionview (6.0.2.2) lib/action_view/helpers/form_tag_helper.rb:883:in `form_tag_html' 
actionview (6.0.2.2) lib/action_view/helpers/form_tag_helper.rb:888:in `form_tag_with_body' 
actionview (6.0.2.2) lib/action_view/helpers/form_helper.rb:759:in `form_with' 
app/views/layouts/moments.haml:264 

РЕДАКТИРОВАТЬ: я получил ту же ошибку, когда я устанавливал метатег csrf-token при вызове form_authenticity_token (на который ссылается вышеупомянутый стек вызовов). Я забыл, что прокомментировал это в попытке отладки.

1 Ответ

0 голосов
/ 14 апреля 2020

Отследил, что ссылка исходила из ошибки, сохраненной в данных сеанса моего пользователя. Очистил базу данных сеанса с помощью rake: db: session: clear, и она ушла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...