我将 Rails 从版本 3.1.2(运行良好)升级到 4.0,并遇到以下错误:
circular dependency detected while autoloading constant Foo
我创建了一个类ProductFactory
,在其中实例化不同的模型。例如:
p = Foo.new(params)
该模型"Foo"
并不总是一个 ActiveRecord。谁能帮我解决这个问题?
我将 Rails 从版本 3.1.2(运行良好)升级到 4.0,并遇到以下错误:
circular dependency detected while autoloading constant Foo
我创建了一个类ProductFactory
,在其中实例化不同的模型。例如:
p = Foo.new(params)
该模型"Foo"
并不总是一个 ActiveRecord。谁能帮我解决这个问题?
据我所知,循环依赖错误消息通常发生在级联包含出错时,通过在完全加载之前递归地要求文件,例如:
# File A:
require 'B'
module Foo; end
# File B:
require 'A'
module Foo; end
你最终会遇到这种情况吗?
我遇到了这个错误,因为我手动重命名了控制器、路由等,却忘记在文件的第一行重命名它。
被命名为
类 AController < 应用控制器
代替
类 ANamedController < ApplicationController
我已经单独重命名了所有其他文件。
不是我知道的最佳实践,但我正在学习并弄清楚它,在这种情况下,造成了这个人正在谈论的错误。因此,如果您像我一样通过 Google 来到这里,那么这就是我的解决方案。
当您更改 Rails 的版本时,经常会发生此类问题。您可能没有按正确的顺序更新宝石。