尝试重新打开引擎类时的循环依赖?

时间:2014-06-26 20:47:25

标签: ruby-on-rails ruby class-eval

我正在尝试重新打开来自引擎的Rails中的类。我做了以下事情:

module Xaaron
  ApiKey.class_eval do
     include Promiscuous::Publisher
     publish :xaaron_users_id, :api_key, :as => :ApiKey
  end
end

位于:

  models/
    Xaaron/
      api_key.rb

这都在我的应用程序中,然后让我运行:

bundle exec promiscuous publish "Xaaron::ApiKey.all"

但是,当我这样做时,我得到错误:

RuntimeError: Circular dependency detected while autoloading constant Xaaron::ApiKey

2 个答案:

答案 0 :(得分:1)

TL; DR :尝试将api_key.rb重命名为其他内容。

以下是我认为正在发生的事情:Rails自动加载器加载Xaaron/api_key.rb并遇到未知常量Xaaron::ApiKey。然后它尝试从被调用的文件(基于常量名称)... Xaaron/api_key.rb加载它。繁荣,循环依赖。

答案 1 :(得分:0)

像@artemave所述,重命名文件。如果这不起作用,请尝试:

Xaaron::ApiKey.class_eval do