неопределенный метод `include? ' для nil: NilClass после обновления с рельсов 3.1.3 до рельсов 3.2.2 - PullRequest
1 голос
/ 11 марта 2012

После выгрузки моего приложения из rails 3.1.3 в rails 3.2.2 с помощью команды rake rails:upgrade я получаю следующую ошибку при вводе localhost: 3000

undefined method `include?' for nil:NilClass

и мой лог-сервер говорит

NoMethodError (undefined method `include?' for nil:NilClass):
  oa-core (0.3.2) lib/omniauth/builder.rb:29:in `call'
  client_side_validations (3.1.4) lib/client_side_validations/middleware.rb:18:in `call'
  warden (1.1.1) lib/warden/manager.rb:35:in `block in call'
  warden (1.1.1) lib/warden/manager.rb:34:in `catch'
  warden (1.1.1) lib/warden/manager.rb:34:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
  rack (1.4.1) lib/rack/etag.rb:23:in `call'
  rack (1.4.1) lib/rack/conditionalget.rb:25:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/head.rb:14:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/flash.rb:242:in `call'
  rack (1.4.1) lib/rack/session/abstract/id.rb:205:in `context'
  rack (1.4.1) lib/rack/session/abstract/id.rb:200:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/cookies.rb:338:in `call'
  activerecord (3.2.2) lib/active_record/query_cache.rb:64:in `call'
  activerecord (3.2.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:443:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
  activesupport (3.2.2) lib/active_support/callbacks.rb:405:in `_run__855497111__call__557125978__callbacks'
  activesupport (3.2.2) lib/active_support/callbacks.rb:405:in `__run_callback'
  activesupport (3.2.2) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
  activesupport (3.2.2) lib/active_support/callbacks.rb:81:in `run_callbacks'
  actionpack (3.2.2) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/reloader.rb:65:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.2) lib/rails/rack/logger.rb:26:in `call_app'
  railties (3.2.2) lib/rails/rack/logger.rb:16:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.1) lib/rack/runtime.rb:17:in `call'
  activesupport (3.2.2) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.1) lib/rack/lock.rb:15:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/static.rb:61:in `call'
  railties (3.2.2) lib/rails/engine.rb:479:in `call'
  railties (3.2.2) lib/rails/application.rb:220:in `call'
  rack (1.4.1) lib/rack/content_length.rb:14:in `call'
  railties (3.2.2) lib/rails/rack/log_tailer.rb:14:in `call'
  rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service'
  /home/rzaartz/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
  /home/rzaartz/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
  /home/rzaartz/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'


  Rendered /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/actionpack-3.2.2/lib/action_dispatch/middleware/templates/rescues/_trace.erb (5.2ms)
  Rendered /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/actionpack-3.2.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (26.7ms)
  Rendered /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/actionpack-3.2.2/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (155.4ms)

Как я могу решить это.

Мой драгоценный файл

source 'http://rubygems.org'

gem 'rails', '3.2.2'

# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'

gem 'mysql2'


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer'

  gem 'uglifier', '>= 1.0.3'
  gem 'twitter-bootstrap-rails'
end

gem 'jquery-rails'
gem 'devise'
gem 'paperclip'
gem 'redcarpet'
gem 'make_flaggable', :git => 'git://github.com/cavneb/make_flaggable.git'
gem 'nokogiri'
gem 'gravtastic'
gem "impressiongram", "~> 0.0.5"
gem 'impressionist'
#gem 'sunspot_rails'
gem 'event-calendar', :require => 'event_calendar'
gem "oa-oauth", :require => "omniauth/oauth"
gem "omniauth"
gem "will_paginate", "~> 3.0.0"
gem "cancan"
gem "tabs_on_rails", "~> 2.0.2"
gem 'albino'
gem 'youtube_it'
gem 'rack-pjax'
#gem 'formtastic'
gem 'amistad'
gem 'jw_player_helper'
gem 'best_in_place'
gem 'roadie'
gem "googlecharts", :require => "gchart"
gem 'delayed_job'
gem 'delayed_paperclip'
gem 'ckeditor'
gem 'private_pub'



gem "devise_rpx_connectable", :git => 'git://github.com/TheEmpty/devise_rpx_connectable.git'





 gem 'capistrano'


group :development, :test do
  # Pretty printed test output
  gem 'turn', :require => false
  gem 'rspec-rails'
  gem 'capybara'
  gem 'launchy'
  gem "factory_girl_rails"
  gem "capybara"
  gem "database_cleaner"
  gem "guard"
  gem "guard-rspec"
  gem "fakeweb"
  gem "simplecov", :require => false
  #gem 'client_side_validations'
end

1 Ответ

0 голосов
/ 11 марта 2012

Проблема в том, что вы используете устаревшую версию OmniAuth (0.3.2). Обновление до версии 1.x, чтобы исправить это. Смотри: https://github.com/intridea/omniauth

Обратите внимание, что есть несколько критических изменений с 0.3.2 до 1.x, поэтому внимательно прочитайте инструкцию по обновлению: https://github.com/intridea/omniauth/wiki/Upgrading-to-1.0

Обновление: в рамках этого процесса обновления вы должны удалить ссылку oa-oauth из вашего Gemfile.

Обновление 2: моё предупреждение о внимательном прочтении инструкций по обновлению не было добавлено там случайно: Это не совсем тривиальное обновление, нужно позаботиться, чтобы оно заработало

...