0

Rails アプリを開発していますが、すべて正常に動作していましたが、バグが発生し始めました。Authlogic の腐敗しやすいトークンを使用して ActionMailer を実装しましたが、UsersController#show にアクセスしようとするたびに、エラー 500 のみが表示されます。

We're sorry, but something went wrong.

およびサーバー コンソールで

Started GET "/users/1" for 127.0.0.1 at 2012-10-06 13:04:46 +0200
Processing by UsersController#show as HTML
  Parameters: {"id"=>"1"}
  User Load (2.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
   (1.0ms)  BEGIN
   (1.0ms)  UPDATE `users` SET `last_request_at` = '2012-10-06 11:04:46', `perishable_token` = 'eFBAhfqGX2p04ZfYGb9w', `updated_at` = '2012-10-06 11:04:46' WHERE `users`.`id` = 1
   (3.0ms)  COMMIT
  User Load (1.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
  Rendered users/show.html.erb within layouts/application (99.0ms)
Completed 500 Internal Server Error in 169ms

development.log は空です。また、サーバーを再起動してもセッションは期限切れにならないため、再起動後もログに記録されたままになります。しばらくして、サーバーがこのエラーをスローすることがあることがわかりました

[2012-10-06 13:11:39] ERROR Errno::ECONNABORTED: Software v hostitelsk�m poc�taci ukoncil vytvoren� pripojen�.
    C:/Ruby193/lib/ruby/1.9.1/webrick/httpserver.rb:80:in `eof?'
    C:/Ruby193/lib/ruby/1.9.1/webrick/httpserver.rb:80:in `run'
    C:/Ruby193/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
C:/Ruby193/lib/ruby/1.9.1/webrick/htmlutils.rb:19: warning: regexp match /.../n against to CP850 string
C:/Ruby193/lib/ruby/1.9.1/webrick/htmlutils.rb:20: warning: regexp match /.../n against to CP850 string
C:/Ruby193/lib/ruby/1.9.1/webrick/htmlutils.rb:21: warning: regexp match /.../n against to CP850 string
C:/Ruby193/lib/ruby/1.9.1/webrick/htmlutils.rb:22: warning: regexp match /.../n against to CP850 string

私はレール/コンソールで作業しようとしましたが、すべてうまくいきました。選択肢がなくなり困っています。助けていただければ幸いです。

4

1 に答える 1

1

問題は、models ファイルのエラー エンコーディングにありました。UTF-8 (latin2 文字用) を使用しており、分音記号を使用するすべてのファイルの先頭にこれを追加する必要があります

#encoding: utf-8

残念ながら、私はこれ以上良い方法を知りません。エンコーディングを設定せずにファイルで分音記号を使用すると、レールは無効なマルチバイト文字 (US-ASCII) に関するエラーをスローします。したがって、UsersController#show は、report.rbメソッドを使用するuser.rbメソッドを使用します。method.rbファイルに分音記号がありましたが、encoding 行を追加するのを忘れていました。どういうわけか、Ruby on Rails はそのエラーを処理できませんでした。その結果、500 内部エラーが発生します

于 2013-01-19T18:14:12.950 に答える