2012-02-21 3 views
0

Rails 3.2로 업그레이드 한 후에는 레이크 작업이 더 이상 모델을 자동로드 할 수 없습니다. 다음은에서 일하는Rails 3.2로 업그레이드 한 후 레이크 작업이 깨졌습니다.

3.1 레일 :

여기를 확인할 수 있도록 내 응용 프로그램의 코드는 오픈 소스로
09:04:14 /srv/www/gamersmafia/current$ rake --trace gm:update_default_skin_styles 
rake aborted!                 
No such file to load -- notification            
/usr/lib/ruby/gems/1.8/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:317:in `depend_on' 
/usr/lib/ruby/gems/1.8/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:225:in `require_dependency' 
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/engine.rb:439:in `eager_load!' 
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/engine.rb:438:in `each' 
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/engine.rb:438:in `eager_load!' 
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/engine.rb:436:in `each' 
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/engine.rb:436:in `eager_load!' 
/srv/www/gamersmafia/current/lib/tasks/update_games_and_factions_sprite.rake:1 
/usr/lib/ruby/gems/1.8/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:245:in `load' 
/usr/lib/ruby/gems/1.8/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:245:in `load' 
/usr/lib/ruby/gems/1.8/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:236:in `load_dependency' 
/usr/lib/ruby/gems/1.8/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:245:in `load' 
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/engine.rb:425:in `load_tasks' 
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/engine.rb:425:in `each' 
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/engine.rb:425:in `load_tasks' 
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/application.rb:145:in `load_tasks' 
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/railtie/configurable.rb:30:in `send' 
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/railtie/configurable.rb:30:in `method_missing' 
/srv/www/gamersmafia/current/Rakefile:7           
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load' 
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile' 
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile' 
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `load_rakefile' 
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' 
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile' 
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `run' 
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' 
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run' 
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/bin/rake:33        
/usr/local/bin/rake:19:in `load'             
/usr/local/bin/rake:19 

:

https://github.com/slnc/gamersmafia 

내가 할 수있는 유일한 수정 추가하는 것입니다 a

"Rails.application.eager_load!" 위에 표시된 레이크 작업의 시작 부분으로 이동하십시오. 그것 없이는 "Skins"라이브러리가로드되지 않습니다.

UPDATE 내가 추가하여 디버깅 시도는 위의 스택 추적의 각 행에 문을두고 나는 같은 것을 볼 수있다 : 대략 그 통지를 찾는 레일 나타낼 것으로 보인다

eager_load_path: /srv/www/gamersmafia/current/app/mailers 
file found: /srv/www/gamersmafia/current/app/mailers/notification.rb 
require_dependency notification 
... notification 
rake aborted! 

합니다. rb 파일을로드하려고 할 때로드 할 수 없습니다.

+0

Rails 3.2와 관련이없는 것 같습니다. 나는 Rails 3.1로 돌아 갔고 실패했다. 나는 최근 벤더/플러그인과 설정/초기화기로 코드를 이동시키는 많은 리팩토링을했는데 이것이 지금 실패하고있는 이유일지도 모릅니다. –

+0

이상한 점은 "Rails.application.eager_load!"를 추가해야한다는 것입니다. 선. 내 이해는 작업에 환경 변수를 추가하면 레일이 강제로로드된다는 것입니다. –

답변

0
gem install notification 

No such file to load -- notification로 보는 것은 require 'notification'에 문제가 있음을 나타냅니다, 트릭을 할 단지 수 있습니다.

+0

솔로하지만 고마워요. 나는 "알림"이라고 불리는 모델을 가지고있다. 그것은 app/mailers dir에있다. –

관련 문제