2011-08-16 61 views
2

從rails 2.3.10升級到rails 3時出現問題我正在升級現有項目,我所做的是創建一個全新的rails 3.0.9通過代碼(模型,視圖等)複製項目並更改rails_upgrade插件推薦的內容。從rails 2升級到rails 3(也是ruby版本)時的問題

另外,我升級寶石等。

現在,當我嘗試啓動服務器,我有這樣的問題:

/Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:123:in `include': wrong argument type Class (expected Module) (TypeError) 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:123:in `add_template_helper' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:123:in `module_eval' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:123:in `add_template_helper' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:98:in `helper' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:97:in `each' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:97:in `helper' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/action_controller/base.rb:228:in `inherited' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/bundler/gems/typus-974c0c36221d/app/controllers/admin/base_controller.rb:1 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:227:in `load_dependency' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:346:in `require_or_load' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:491:in `load_missing_constant' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:183:in `const_missing' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:181:in `each' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:181:in `const_missing' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/bundler/gems/typus-974c0c36221d/app/controllers/admin/account_controller.rb:1 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:227:in `load_dependency' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:346:in `require_or_load' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:300:in `depend_on' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:216:in `require_dependency' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/engine.rb:138:in `eager_load!' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/engine.rb:137:in `each' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/engine.rb:137:in `eager_load!' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/engine.rb:135:in `each' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/engine.rb:135:in `eager_load!' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application.rb:209:in `to_proc' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application/railties.rb:11:in `each' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application/railties.rb:11:in `all' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application.rb:107:in `eager_load!' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application/finisher.rb:41 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `instance_exec' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `run' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/initializable.rb:50:in `run_initializers' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `each' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `run_initializers' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application.rb:134:in `initialize!' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application.rb:77:in `send' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application.rb:77:in `method_missing' 
from /Users/avitzurel/Dropbox/Projects/gogobot_rails3/config/environment.rb:5 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
from /Users/avitzurel/Dropbox/Projects/gogobot_rails3/config.ru:3 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/rack-1.2.3/lib/rack/builder.rb:46:in `instance_eval' 
from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/rack-1.2.3/lib/rack/builder.rb:46:in `initialize' 
from /Users/avitzurel/Dropbox/Projects/gogobot_rails3/config.ru:1:in `new' 
from /Users/avitzurel/Dropbox/Projects/gogobot_rails3/config.ru:1 

這是我的Gemfile

source 'http://rubygems.org' 

gem 'rails', '3.0.9' 

gem 'ar-extensions' 
gem 'authlogic' 
gem 'oauth' 
gem 'twitter_oauth' 
gem 'koala' 
gem 'htmlentities' 
# gem 'aws-s3', :require => 'aws/s3' 
gem 'right_aws' 
gem "typus", :git => "git://github.com/typus/typus.git", :branch => "3-0-stable" 
gem 'flickraw' 
gem 'delayed_job', '>= 2.0.4' 
gem 'friendly_id', '3.1.7' 
gem 'will_paginate', '~> 3.0' 
gem 'rubyzip', :require => 'zip/zip' 
gem 'nokogiri' 
gem 'jammit' 
gem 'mysql2', '< 0.3' 
gem 'dalli' 
gem 'closure-compiler' 
gem 'yui-compressor', :require => 'yui/compressor' 
gem 'geokit' 
gem 'text' 
gem 'fastercsv' 
gem 'rapleaf_api' 
gem 'hashie' 
gem 'foursquare' 
gem 'foursquare2' 
gem 'oauth2' 
gem 'google_places' 
gem 'cancan' 
gem 'juggernaut' 
gem 'factory_girl' 
gem 'whenever' 
gem 'twitter' 
gem 'sunspot', :require => 'sunspot' 
gem 'sunspot_rails', :require => 'sunspot/rails' 
gem 'bcrypt-ruby', :require => 'bcrypt' 
gem 'validatable' 
gem 'redis' 
gem 'redis-namespace' 

# Use unicorn as the web server 
gem 'unicorn' 
gem 'capistrano' 

group :development, :test do 

end 

這是我的插件列表:

acts_as_abusable 
acts_as_loggable 
annotate_models 
daemon_generator 
masochism   
mysql_bigint  
perform_later  
sitemap_generator 
acts_as_likable 
acts_as_solr  
bitmask-attribute 
gogo_cache   
mobile-fu 
oauth2_provider 
resque 

我現在正在爲這個問題掙扎幾個小時,我很樂意回答。

謝謝。

編輯: 這是堆棧跟蹤後,我徹底清除typus:

/Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:123:in `include': wrong argument type Class (expected Module) (TypeError) 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:123:in `add_template_helper' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:123:in `module_eval' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:123:in `add_template_helper' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:98:in `helper' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:97:in `each' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/abstract_controller/helpers.rb:97:in `helper' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/actionpack-3.0.9/lib/action_controller/base.rb:228:in `inherited' 
    from /Users/avitzurel/Dropbox/Projects/gogobot_rails3/app/controllers/application_controller.rb:1 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:227:in `load_dependency' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:346:in `require_or_load' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:491:in `load_missing_constant' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:183:in `const_missing' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:181:in `each' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:181:in `const_missing' 
    from /Users/avitzurel/Dropbox/Projects/gogobot_rails3/app/controllers/abuse_reports_controller.rb:1 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:227:in `load_dependency' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:346:in `require_or_load' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:300:in `depend_on' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:216:in `require_dependency' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/engine.rb:138:in `eager_load!' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/engine.rb:137:in `each' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/engine.rb:137:in `eager_load!' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/engine.rb:135:in `each' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/engine.rb:135:in `eager_load!' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application.rb:108:in `eager_load!' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application/finisher.rb:41 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `instance_exec' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `run' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/initializable.rb:50:in `run_initializers' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `each' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `run_initializers' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application.rb:134:in `initialize!' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application.rb:77:in `send' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/railties-3.0.9/lib/rails/application.rb:77:in `method_missing' 
    from /Users/avitzurel/Dropbox/Projects/gogobot_rails3/config/environment.rb:5 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 
    from /Users/avitzurel/Dropbox/Projects/gogobot_rails3/config.ru:3 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/rack-1.2.3/lib/rack/builder.rb:46:in `instance_eval' 
    from /Users/avitzurel/.rvm/gems/[email protected]_web/gems/rack-1.2.3/lib/rack/builder.rb:46:in `initialize' 
    from /Users/avitzurel/Dropbox/Projects/gogobot_rails3/config.ru:1:in `new' 
    from /Users/avitzurel/Dropbox/Projects/gogobot_rails3/config.ru:1 
+0

app/controllers/admin/base_controller.rb的第一行是什麼? – dogenpunk

+0

我完全從系統中刪除了typus,刪除了所有的控制器,然後它說錯誤在另一個控制器的第一行,只是一個標準的控制器。 – KensoDev

+0

您是否確認您正確地使用了Typus?您可以在刪除typus後共享堆棧跟蹤嗎? – arikfr

回答

3
`include': wrong argument type Class (expected Module) (TypeError) 

你的助手也許一個被意外重新定義爲Class

# app/helpers/application_helper.rb 
# make sure you never say "# class ApplicationHelper" 
module ApplicationHelper 

你可以檢查你的整個應用這個grep命令:

egrep -Ri "class.*Helper" * 

如果你發現任何東西,雙重電子檢查它不應該是一個Module而是。

+0

我接受你的答案,因爲這是問題所在,我確實回答了我自己,但更好接受你的:-) – KensoDev

+0

謝謝:)我粘貼它時,酒吧出現在頂部說已添加的答案。 –

3

所以,它現在固定...

我所做的就是編輯這個文件helpers.rb:123:在'include'中(問題出在rails中) 我剛剛輸出了當前正在加載的模塊名稱,結果發現app/helpers文件夾中的文件是一個類(有人在幾個月前將它放在那裏)。

一旦我刪除這個文件到lib文件夾,鋼軌裝起來很好。

多虧@arikfr冰山編輯這個文件:-)