2017-01-26 45 views
1

デプロイ後にHerokuでこのエラーが発生しましたが、エラーは発生せず、ローカルでも問題は発生しません。Heroku/Rubyで「循環依存関係が検出された時に循環依存が検出されました」

次の命名/名前空間などの問題は何ですか?私は何が欠けていますか?

モデル/懸念/購入/ finalize_utils.rb

module Purchase::FinalizeUtils 
    extend ActiveSupport::Concern 
end 

モデル/ purchase.rb

class Purchase < ActiveRecord::Base 
    include FinalizeUtils 
end 

ログエラー:それはとの将来の人々のために価値がある何のために

2017-01-26T22:39:25.553902+00:00 app[web.1]: RuntimeError: Circular dependency detected while autoloading constant Purchase::FinalizeUtils 
2017-01-26T22:39:25.553903+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:492:in `load_missing_constant' 
2017-01-26T22:39:25.553903+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:184:in `const_missing' 
2017-01-26T22:39:25.553904+00:00 app[web.1]: /app/app/models/purchase.rb:19:in `<class:Purchase>' 
2017-01-26T22:39:25.553904+00:00 app[web.1]: /app/app/models/purchase.rb:16:in `<top (required)>' 
2017-01-26T22:39:25.553905+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:274:in `require' 
2017-01-26T22:39:25.553906+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:274:in `block in require' 
2017-01-26T22:39:25.553906+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:240:in `load_dependency' 
2017-01-26T22:39:25.553907+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:274:in `require' 
2017-01-26T22:39:25.553907+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:360:in `require_or_load' 
2017-01-26T22:39:25.553907+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:494:in `load_missing_constant' 
2017-01-26T22:39:25.553908+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:184:in `const_missing' 
2017-01-26T22:39:25.553909+00:00 app[web.1]: /app/app/models/concerns/purchase/finalize_utils.rb:1:in `<top (required)>' 
2017-01-26T22:39:25.553909+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:274:in `require' 
2017-01-26T22:39:25.553909+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:274:in `block in require' 
2017-01-26T22:39:25.553910+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:240:in `load_dependency' 
2017-01-26T22:39:25.553910+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:274:in `require' 
2017-01-26T22:39:25.553910+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:360:in `require_or_load' 
2017-01-26T22:39:25.553911+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:317:in `depend_on' 
2017-01-26T22:39:25.553912+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/engine.rb:472:in `block (2 levels) in eager_load!' 
2017-01-26T22:39:25.553911+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/dependencies.rb:233:in `require_dependency' 
2017-01-26T22:39:25.553912+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/engine.rb:471:in `each' 
2017-01-26T22:39:25.553912+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/engine.rb:471:in `block in eager_load!' 
2017-01-26T22:39:25.553913+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/engine.rb:469:in `each' 
2017-01-26T22:39:25.553913+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/engine.rb:469:in `eager_load!' 
2017-01-26T22:39:25.553914+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/engine.rb:346:in `eager_load!' 
2017-01-26T22:39:25.553914+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/application/finisher.rb:56:in `each' 
2017-01-26T22:39:25.553914+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/application/finisher.rb:56:in `block in <module:Finisher>' 
2017-01-26T22:39:25.553915+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/initializable.rb:30:in `instance_exec' 
2017-01-26T22:39:25.553915+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/initializable.rb:30:in `run' 
2017-01-26T22:39:25.553915+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/initializable.rb:55:in `block in run_initializers' 
2017-01-26T22:39:25.553916+00:00 app[web.1]: /app/vendor/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:228:in `block in tsort_each' 
2017-01-26T22:39:25.553916+00:00 app[web.1]: /app/vendor/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component' 
2017-01-26T22:39:25.553917+00:00 app[web.1]: /app/vendor/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:431:in `each_strongly_connected_component_from' 
2017-01-26T22:39:25.553917+00:00 app[web.1]: /app/vendor/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:349:in `block in each_strongly_connected_component' 
2017-01-26T22:39:25.553917+00:00 app[web.1]: /app/vendor/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:347:in `each' 
2017-01-26T22:39:25.553918+00:00 app[web.1]: /app/vendor/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:347:in `call' 
2017-01-26T22:39:25.553918+00:00 app[web.1]: /app/vendor/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:347:in `each_strongly_connected_component' 
2017-01-26T22:39:25.553918+00:00 app[web.1]: /app/vendor/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:226:in `tsort_each' 
2017-01-26T22:39:25.553919+00:00 app[web.1]: /app/vendor/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:205:in `tsort_each' 
2017-01-26T22:39:25.553921+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/initializable.rb:54:in `run_initializers' 
2017-01-26T22:39:25.553921+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/application.rb:352:in `initialize!' 
2017-01-26T22:39:25.553922+00:00 app[web.1]: /app/config/environment.rb:11:in `<top (required)>' 
+0

チェックするhttp://stackoverflow.com/questions/28682451/circular-dependency-on-nested-concern –

答えて

1

この問題は、私の問題は物事の組み合わせであることがわかりました。 1については

、生産・開発は、この設定した場合、これは、異なる機能していた理由:

config.eager_load 

それは同様の「セットアップ」のために、故障していなかったされなかった理由(つまり、ユーザー:: MyModuleという) eager_loadingのためにファイルが処理される順序と関係があるようです。

問題は、モデルの前に気になるように見えることがありました。時には逆もあります。両方のバージョンには問題があります。これは、クラスの購入が同じクラス(サブクラスと1つではないため)ではなく、適切に再オープンされなかったためです。

だから私は、この変更する必要がありました。これに

module Purchase::FinalizeUtils 
    extend ActiveSupport::Concern 
end 

#models/concerns/purchase/finalize_utils.rb 
class Purchase < ActiveRecord::Base 
    module FinalizeUtils 
    extend ActiveSupport::Concern 
    end 
    end 
end 

これは、クラスの購入がリニューアルオープンの代わりに再定義することが許可されています。またはそのようなもの。上記の方法は、私はこのように含むための私の懸念を名前空間を可能にするいずれかの方法:

#models/purchase.rb 
class Purchase < ActiveRecord::Base 
    include FinalizeUtils 
end 

ファイルは、遅延ロードによって発見されるという名前が、モジュールがクラスにあるため、検索パスがそれを見つけていません。

関連する問題