【发布时间】:2017-07-07 11:49:55
【问题描述】:
有两个应用程序。其中一个应用程序正在使用 rails 4.1.2。另一个应用程序正在使用 rails 5.0.1。这是 rails 5 应用程序的工作方式:它检查用户是否已登录:
- 如果用户已登录:那么用户应该能够继续前进。
- 如果用户未登录,则它会将他们重定向到 rails 4 应用程序(用户可以登录的地方)。一旦用户使用 rails 4 应用程序登录:用户应该能够访问 rails 5 应用程序没有问题。
我目前在我的 Rails 5 项目中使用以下 gem:
gem 'mysql2', '~> 0.4.4'
gem 'activerecord-session_store', '~> 1.0'
然后我的config/initializers/session_store.rb 文件中有以下内容:
Rails.application.config.session_store :active_record_store, :key => ‘SOME_KEY’
当前:如果用户没有登录:那么它成功地重定向了用户。问题是当用户 登录时。当登录用户尝试访问 rails 5 应用程序时出现此错误:
NameError (uninitialized constant ActiveRecord::ConnectionAdapters::Mysql2Adapter::Column)
- 我注意到应用程序已成功连接到数据库
- 该应用似乎还可以在初始请求时访问
sessions表(当用户未登录时)。
关于触发此错误的原因以及如何修复它有什么建议吗?最终:似乎rails 5 与activerecord-session_store 和mysql2 不兼容。
【问题讨论】:
-
在错误之前或之后的行中必须有更多信息,说明它的来源。
-
@Iceman 不幸的是:只有堆栈跟踪。这是最后一行:
activesupport (5.0.1) lib/active_support/inflector/methods.rb:270:inconst_get'` -
仔细看一下,里面一定有一些代码是你调用的登录用户产生这个错误的代码。
标签: ruby-on-rails activerecord mysql2