未初始化常量Authlogic :: Session :: Validation

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

我正在将Rails 4.2站点升级到6.0并正在接收

uninitialized constant Authlogic::Session::Validation

当我尝试加载表单时,大概是因为Validation模块已从Authlogic中删除,并且某些旧的gem /代码仍在尝试引用它。如果我对form_with使用authenticity_token = false选项,它会消失,但显然我不想这样做。

因此,在某个地方,某种方式正在引用该旧模块。这是摩擦:

  1. 我已经在整个代码库中搜索了“ Authlogic :: Session :: Validation”。没事。
  2. 我已经搜索了整个“ Authlogic :: Session :: Validation”的宝石树。没事。

就像它被配置为用于生成表单真实性令牌之类的插件一样,但是对于该配置的位置或查找方式我一无所知。我的意思是,对于该错误,该字符串必须位于某个地方,对吗?

这是我收到错误时调用栈的相关部分(我的代码在moments.haml中:

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 

编辑:在调用form_authenticity_token(在上面的调用堆栈中引用)时设置csrf-token元标记时,出现了相同的错误。我忘记我已经注释掉了,以进行调试。

authlogic ruby-on-rails-6 authenticity-token form-with
1个回答
0
投票
追查该引用来自存储在我的用户会话数据中的错误。使用rake:db:sessions:clear清除了会话数据库,它消失了。
© www.soinside.com 2019 - 2024. All rights reserved.