在我的具体情况下,我有Mongo模型,但我想这个问题更为笼统。
我有一个名为" Map"的模型,另一个名称相同的模型,但在模块中。我需要第二个模型属于第一个模型。
代码段:
# Ruby version: 2.1.5
# app/models/map.rb
class Map
include Mongoid::Document
end
# app/models/base_content.rb
class BaseContent
include Mongoid::Document
end
# app/models/content/map.rb
class Content::Map < BaseContent
belongs_to :map, class: ::Map
end
建议的方法是什么?如果我在上面的代码片段中这样做,我会得到循环依赖性错误。
更新
当我使用class_name时:&#39; Map&#39;正如AJcodez所建议的那样,这就是我在控制台中得到的结果:
[1] pry(main)> Map
RuntimeError: Circular dependency detected while autoloading constant Map
from /home/m/.rvm/gems/ruby-2.1.5/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:478:in `load_missing_constant'
[2] pry(main)> Content::Map
=> Content::Map
答案 0 :(得分:0)
您应该将class: ::Map
更改为class_name: 'Map'
,以避免自动加载循环依赖关系。