Non-deterministic NameError: uninitialized constant on ActiveRecord model
Non-deterministic NameError: uninitialized constant on ActiveRecord model
如标题所示,我正在为 app/models/workflow/task.rb
处定义的模型获取 NameError (uninitialized constant Workflow::Task)
。
我相信模型定义是正确的,因为它在 90% 的时间里都有效,但在 10% 的时间里我遇到这个名称错误并且它崩溃了。我 不能 在本地复制,这只发生在我们使用 Amazon Aurora 数据库的产品中。如果连接到数据库或类似问题时出现问题,是否会发生这种情况?任何指针表示赞赏
使用rails5.1.6.2
从错误消息中可以清楚地看出这不是与数据库相关的问题。简而言之,Rails 没有加载您的模型 class.
您可以尝试以下方法:
- 正如@max 评论的那样,将您的 class 定义为
module Workflow; class Task
。
- 您可以在 rails 自动加载路径中手动添加文件。将其放入
config/application.rb
:config.autoload_paths << Rails.root.join('app/models/workflow')
- 不过,这应该不是问题。 Rails 加载
app
目录中的所有内容。
`
如标题所示,我正在为 app/models/workflow/task.rb
处定义的模型获取 NameError (uninitialized constant Workflow::Task)
。
我相信模型定义是正确的,因为它在 90% 的时间里都有效,但在 10% 的时间里我遇到这个名称错误并且它崩溃了。我 不能 在本地复制,这只发生在我们使用 Amazon Aurora 数据库的产品中。如果连接到数据库或类似问题时出现问题,是否会发生这种情况?任何指针表示赞赏
使用rails5.1.6.2
从错误消息中可以清楚地看出这不是与数据库相关的问题。简而言之,Rails 没有加载您的模型 class.
您可以尝试以下方法:
- 正如@max 评论的那样,将您的 class 定义为
module Workflow; class Task
。 - 您可以在 rails 自动加载路径中手动添加文件。将其放入
config/application.rb
:config.autoload_paths << Rails.root.join('app/models/workflow')
- 不过,这应该不是问题。 Rails 加载
app
目录中的所有内容。
- 不过,这应该不是问题。 Rails 加载
`