Круговая зависимость при попытке открыть класс двигателя?

Я пытаюсь заново открыть класс в 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 ответа

TL; DR: попробуйте переименовать api_key.rb к чему-то еще.

Вот что я думаю происходит: загрузка автозагрузчика Rails Xaaron/api_key.rb и встречает неизвестную константу Xaaron::ApiKey, Затем он пытается загрузить его из файла с именем (на основе постоянного имени)... Xaaron/api_key.rb, Бум, круговая зависимость.

Как указано @artemave, переименуйте файл. И если это не сработает, попробуйте:

Xaaron::ApiKey.class_eval do
Другие вопросы по тегам