私の実稼働環境(FreeBSD/Apache/Passenger/MySQL)のテストやバグ修正中に予期せず発生した非常に奇妙な問題があります。 ):Rails/Devise - NoMethodError(未定義のメソッドnew_with_session 'for#<クラス:0x2b2a4e34>)
$ tail log/production.log
Started GET "https://stackoverflow.com/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で構成されています。サインインページはOKです。サインアップページでこのエラーがスローされます。
データベース(変更された型int - > bigint)でフィールドの1つ(Deviseには関係ありません)を変更し、db/schema.rbとdb/migrations/20110412205837_rename_files.rbをアップロードするまで、すべてがうまく行きました。それから私は、
$ rake db:setup RAILS_ENV='production'
でデータベースをリセット
$ touch tmp/restart.txt
でアプリを再起動し、新しいユーザーとしてサインアップしてみました - して、ログファイルにその不幸なエラーページとNoMethodErrorレポートを見ました。私はmodels/user.rbファイルのdeviseセクションを変更しませんでした(OK、私もそうでしたが、その後もアプリケーションを再起動し、すべて正常でした)。ここで
は私のモデル/ user.rbの工夫セクションです:
devise :database_authenticatable, :registerable
私は、これは悲惨な問題、何か他の多分間違えた、非常に少し厄介なバグですが、私はできないことを確信していますそれが何であるか想像してみてください...私は2日間それを探していましたが、どこを見なければならないのか分かりません。人々が助けてください!
私はすでに次のことを試してみた:
のdb/schema.rbの以前のバージョンに戻さ- 、およびDBをリセットします。
- レールアプリ全体の以前のバージョンにダウングレードしました。
- app/controllers/registrations_controller.rbをapp/controllers/devise とapp/controllers/registrationsディレクトリに移動しました。
- ダウングレードされたDevise gemは1.1.7から1.1.2までです。
- Passenger、Apache、およびFreeBSD全体が再起動されました。
- は、/var/log/httpd.logおよび/var/log/httpd_error.logファイルで調べました。
- データベースを再作成しました。
- MySQLユーザと助成金を確認して再作成しました。
- バンドルの更新。
何も助けない...
私は他に何ができますか?この問題はなぜ発生しましたか?
ありがとうございます。事前に入力してください!