2017-11-26 7 views
0

방금 ​​레일 4.2에서 레일 5.1.4로 내 레일 프로젝트를 업그레이드했습니다. 그리고 업그레이드가 끝나자 주 컨트롤러가 충돌하기 시작했습니다. 내가 전화를 걸면 라우트 파일에 "초기화되지 않은 주 컨트롤러"라는 오류가 발생합니다.heroku에서 Config.cache_classes 상수 컨트롤러

오랜 시간 동안 heroku 서버에서 config.cache_classes를 false로 설정하면 모든 것이 갑자기 작동합니다 . 내 로컬 환경에서 논리를 재현 할 수 없지만.

수정 프로그램을 검색 할 위치 또는 해결 방법을 알고있는 사용자는 누구입니까? 나는 그것이일지도 모른 무슨을에 단 하나 명중없이 일을 찾고있다!

누군가가 도움을 청할 때 유용하다고 생각하는 세부 정보를 제공해 주시면 감사하겠습니다. 그냥 물어봐!

루비 버전 2.4.2

** 편집 - 요청 **

전체 오류와 같은 추가 정보는 다음과 같습니다

ActionController::RoutingError (uninitialized constant HomeController): 

2017-11-26T15:16:55.051341+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/inflector/methods.rb:269:in `const_get' 
2017-11-26T15:16:55.051342+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/inflector/methods.rb:269:in `block in constantize' 
2017-11-26T15:16:55.051343+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/inflector/methods.rb:267:in `each' 
2017-11-26T15:16:55.051343+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/inflector/methods.rb:267:in `inject' 
2017-11-26T15:16:55.051344+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/inflector/methods.rb:267:in `constantize' 
2017-11-26T15:16:55.051345+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:582:in `get' 
2017-11-26T15:16:55.051346+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:613:in `constantize' 
2017-11-26T15:16:55.051346+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.4/lib/action_dispatch/http/request.rb:85:in `controller_class_for' 
2017-11-26T15:16:55.051347+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.4/lib/action_dispatch/http/request.rb:78:in `controller_class' 
2017-11-26T15:16:55.051348+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.4/lib/action_dispatch/routing/route_set.rb:43:in `controller' 
2017-11-26T15:16:55.051348+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.4/lib/action_dispatch/routing/route_set.rb:29:in `serve' 
2017-11-26T15:16:55.051349+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.4/lib/action_dispatch/journey/router.rb:50:in `block in serve' 
2017-11-26T15:16:55.051350+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.4/lib/action_dispatch/journey/router.rb:33:in `each' 
2017-11-26T15:16:55.051350+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.4/lib/action_dispatch/journey/router.rb:33:in `serve' 
2017-11-26T15:16:55.051351+00:00 app[web.1]: vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.4/lib/action_dispatch/routing/route_set.rb:834:in `call' 

컨트롤러는/MyApp를/응용 프로그램/HomeController에 기반을두고 있습니다. rb

class HomeController < ActionController::API 

    def click 
    # Execution of method, removed to keep post small 
    end 
end 

/myapp/config 폴더의 routes 파일은 다음과 같습니다.

Rails.application.routes.draw do 

# root is set to a explainer json 
root to: "home#not_found" 

# New Routes 
get '/clk', to: 'home#click' 

# wildcard for any route not matched 
get "*unmatched_route", to: "tracking#not_found" 
end 
+0

어떻게'MainController' 모습 않습니다 지금 eager_load_paths 대신 autoload_paths

참고 문헌의 application.rb에 사용되어야 하는가? 파일 위치는 어디입니까? 스택 추적을 포함하는 정확한 오류 메시지는 무엇입니까? 어떻게'routes.rb'에서'MainController'를 참조합니까? – spickermann

+0

@spickermann이 메인 포스트에 세부 정보를 추가했습니다. – spons

답변