У меня очень странная проблема, которая возникла довольно неожиданно во время тестирования / исправления ошибок в моей производственной среде (FreeBSD / Apache / Passenger / MySQL):
$ tail log/production.log
Started GET "/users/sign_up" for 192.168.5.7 at 2011-08-06 21:37:53 +0400
Processing by Devise::RegistrationsController#new as
SQL (1.5ms) SHOW TABLES
Completed in 15ms
NoMethodError (undefined method `new_with_session' for #<Class:0x2b2a4e34>):
app/controllers/registrations_controller.rb:71:in `build_resource'
app/controllers/registrations_controller.rb:8:in `new'
Управление пользователями организовано с помощью Devise gem,Страница входа в порядке, страница регистрации выдает эту ошибку.
Все прошло очень хорошо, пока я не изменил одно из полей (не связанных с Devise) в базе данных (изменил тип int -> bigint) и загрузилdb / schema.rb и db / migrations / 20110412205837_rename_files.rb.Затем я сбросил базу данных с помощью
$ rake db:setup RAILS_ENV='production'
, перезапустил приложение с помощью
$ touch tmp/restart.txt
, попытался зарегистрироваться как новый пользователь - и затем увидел страницу с несчастными ошибками и отчет NoMethodErrorв лог-файл.Я не изменял раздел devise в файле models / user.rb (хорошо, я сделал, но я также перезапустил приложение, и все было в порядке).
Вот мой dev models / user.rbраздел:
devise :database_authenticatable, :registerable
Я уверен, что это жалкая проблема, может быть опечатка чего-то другого, очень маленькая неприятная ошибка, но я не могу себе представить, что это может быть ... Яискал его два дня и не знаю где еще искать.Пожалуйста, помогите людям!
Я уже попробовал следующее:
- Вернулся к предыдущей версии db / schema.rb и сбросил БД;
- Понижено до предыдущей версии всего приложения rails;
- Перемещено app / controllers / registrations_controller.rb в каталог app / controllers / devise и app / controllers / registrations;
- Понижен гем Devise с 1.1.7 до 1.1.2;
- Перезапущен Пассажир, Apache и весь FreeBSD;
- заглянул в / var / log / httpd.файлы журнала и /var/log/httpd_error.log;
- воссоздал базу данных;
- проверил и воссоздал пользователей и привилегии MySQL;
- Обновление пакета;
Ничего не помогает ...
Что еще я могу сделать?Почему появилась эта проблема?
ОЧЕНЬ большое спасибо за любой вклад!