#ruby-on-rails
#ruby-on-rails
Вопрос:
После обновления до rails 3.1 теперь я получаю эту ошибку после попытки запустить rails server:
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0/lib/active_support/whiny_nil.rb:48:in `method_missing': undefined method `context_class' for nil:NilClass (NoMethodError)
есть и множество других строк сбоев, но я не хотел вставлять их все. вот мой gemfile:
source 'http://rubygems.org'
gem 'rails', '3.1.0'
gem 'activeadmin'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3', '1.3.4'
gem 'gravatar_image_tag', '0.1.0'
gem 'will_paginate', '3.0.pre2'
gem 'meta_search'
gem 'sass-rails'
group :development do
gem 'rspec-rails', '2.0.1'
gem 'annotate-models', '1.0.4'
gem 'ruby-debug19', :require => 'ruby-debug'
end
group :test do
gem 'rspec', '2.0.1'
gem 'webrat', '0.7.1'
gem 'autotest-fsevent', '0.2.4'
gem 'autotest-growl', '0.2.9'
gem 'autotest', '4.3.2'
gem 'autotest-rails-pure', '4.1.0'
gem 'spork', '0.8.4'
gem 'factory_girl_rails', '1.0'
end
вот остальная часть ошибки:
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:68:in `establish_connection'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:60:in `establish_connection'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:55:in `establish_connection'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0/lib/active_record/railtie.rb:69:in `block (2 levels) in <class:Railtie>'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0/lib/active_support/lazy_load_hooks.rb:26:in `on_load'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0/lib/active_record/railtie.rb:67:in `block in <class:Railtie>'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/initializable.rb:25:in `instance_exec'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/initializable.rb:25:in `run'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/initializable.rb:50:in `block in run_initializers'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/initializable.rb:49:in `each'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/initializable.rb:49:in `run_initializers'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/application.rb:92:in `initialize!'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /Users/beatjunkie84/Desktop/ProjectX/config/environment.rb:5:in `<top (required)>'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `block in require'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223:in `block in load_dependency'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:640:in `new_constants_in'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223:in `load_dependency'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require'
from /Users/beatjunkie84/Desktop/ProjectX/config.ru:4:in `block in <main>'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.3.4/lib/rack/builder.rb:51:in `instance_eval'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.3.4/lib/rack/builder.rb:51:in `initialize'
from /Users/beatjunkie84/Desktop/ProjectX/config.ru:1:in `new'
from /Users/beatjunkie84/Desktop/ProjectX/config.ru:1:in `<main>'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.3.4/lib/rack/builder.rb:40:in `eval'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.3.4/lib/rack/builder.rb:40:in `parse_file'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.3.4/lib/rack/server.rb:200:in `app'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/commands/server.rb:46:in `app'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.3.4/lib/rack/server.rb:301:in `wrapped_app'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rack-1.3.4/lib/rack/server.rb:252:in `start'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/commands/server.rb:70:in `start'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/commands.rb:54:in `block in <top (required)>'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/commands.rb:49:in `tap'
from /usr/local/rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0/lib/rails/commands.rb:49:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
что я могу сделать?
Комментарии:
1. У этого исключения должно быть больше трассировки стека. Не могли бы вы показать нам это? Это дало бы столь необходимую информацию, чтобы выяснить, в чем заключается ваша ошибка.
2. @RyanBigg добавил остальную часть ошибки, надеюсь, это поможет.
3. Проблема с подключением к вашей БД. Вы используете sqlite3? Правильно ли установлен gem?
Ответ №1:
Попробуйте запустить rake rails:update
. Перезапишите свои файлы, когда он запрашивает, но затем просмотрите изменения и убедитесь, что вы сохранили те, которые хотите сохранить (так что в итоге вы сохраняете объединенный результат их изменений и ваших).
Это то, что я сделал, и это исправило ошибку, аналогичную вашей.