Rails 迁移命名空间的 5.2 到 6.0 升级问题:未初始化常量错误
Rails 5.2 to 6.0 upgrade issues with migration namespacing: uninitialized constant errors
我在引用 ActiveRecord 模型的迁移中遇到 NameError Exception: uninitialized constant
错误。控制台中不存在这些相同的问题,因此我对迁移中发生的与 rails 控制台中不同的事情感到有点困惑。
基本上,我的 ActiveRecord 模型似乎没有正确地自动加载所有内容。
下面是一个在控制台中运行但在迁移中引发错误的简单调用示例:
migration(byebug)> Customer.all
*** NameError Exception: uninitialized constant Customer (call 'Customer.connection' to establish a connection)::Querier
Did you mean? Numerizer
nil
同样的调用,在控制台中,有效。
有趣的是,如果我首先调用 确实 正确加载的另一个模型(例如,MyOtherThing.all
),那么如果我接下来尝试调用 Customer.all
不再抛出错误。
对于从哪里开始寻找导致此问题的原因有点困惑。谢谢!
这最终成为一个已知问题:
https://github.com/rails/rails/issues/37748
希望它能尽快修复。而且,我的部分困惑与处理 byebug
有关,这让我对导致真正错误的原因感到困惑。
我在引用 ActiveRecord 模型的迁移中遇到 NameError Exception: uninitialized constant
错误。控制台中不存在这些相同的问题,因此我对迁移中发生的与 rails 控制台中不同的事情感到有点困惑。
基本上,我的 ActiveRecord 模型似乎没有正确地自动加载所有内容。
下面是一个在控制台中运行但在迁移中引发错误的简单调用示例:
migration(byebug)> Customer.all
*** NameError Exception: uninitialized constant Customer (call 'Customer.connection' to establish a connection)::Querier
Did you mean? Numerizer
nil
同样的调用,在控制台中,有效。
有趣的是,如果我首先调用 确实 正确加载的另一个模型(例如,MyOtherThing.all
),那么如果我接下来尝试调用 Customer.all
不再抛出错误。
对于从哪里开始寻找导致此问题的原因有点困惑。谢谢!
这最终成为一个已知问题:
https://github.com/rails/rails/issues/37748
希望它能尽快修复。而且,我的部分困惑与处理 byebug
有关,这让我对导致真正错误的原因感到困惑。