最近、レールを 2.0.1 から 2.3.3 にアップグレードしましたが、それ以来、restful_authentication プラグインで不安定な動作が見られます。以下は、常にではありませんが、ときどき得た 3 つのエラーとスタック トレースです。これらは個別のリクエストで取得しますが、ここでのコード編集によりすべてがまとめられます。
git を使用して最新バージョンの restful-authentication プラグインを取得し、Rails アプリの vender/plugins の下にある古い restful-authentication フォルダーを削除し、git の最新のクローンからそのディレクトリをコピーしました。git を使用するのはこれが初めてで、ディレクトリを手動でコピーする以外に、restful-auth プラグインをアプリにインストールする適切な方法がわかりませんでした。
Rails 2.0.1 から 2.3.3 へのアップグレード後、git から最新のものを取得する前に、「AuthenticatedSystem のコピーが削除されました...」というエラーが表示されました。他の 2 つのエラーは、git から最新の restful_authentication を取得して以来の新しいものです。
ArgumentError (A copy of AuthenticatedSystem has been removed from the module tree but is still active!):
lib/authenticated_system.rb:97:in `login_from_session'
lib/authenticated_system.rb:12:in `current_user'
lib/authenticated_system.rb:6:in `logged_in?'
lib/authenticated_system.rb:34:in `authorized?'
lib/authenticated_system.rb:52:in `login_required'
C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
TypeError (can't dup NilClass):
lib/authenticated_system.rb:97:in `login_from_session'
lib/authenticated_system.rb:12:in `current_user'
lib/authenticated_system.rb:6:in `logged_in?'
lib/authenticated_system.rb:34:in `authorized?'
lib/authenticated_system.rb:52:in `login_required'
C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
C:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
SystemStackError (stack level too deep):
lib/authenticated_system.rb:17:in `current_user='
lib/authenticated_system.rb:97:in `login_from_session'
lib/authenticated_system.rb:12:in `current_user'
lib/authenticated_system.rb:6:in `logged_in?'
lib/authenticated_system.rb:34:in `authorized?'
lib/authenticated_system.rb:52:in `login_required'
C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
C:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'