同じアプリのRails3.1/ Spree 0.70バージョンを含む複数のアプリケーションを開発環境で実行していて、ローカルホスト経由でそれらすべてにアクセスしているため、何らかの競合が発生したと推測します。クッキー。3.1バージョンでは、3.0.9バージョンでは食べられないクッキーが設定されています。これはおそらく、@ Fjanがここの投稿(https://github.com/rails/rails/issues/2509)で言及したことと関係があります。
このエラーを追跡しましたが、これは、セッションのFlashHashクラスがRails3.1のHashクラスから継承しないように変更されたために発生します。
実験をしました。どちらのバージョンのアプリにもログインしていなければ、一方を起動してシャットダウンし、もう一方を起動しても、どちらのバージョンでもこの問題が発生することはありません。ただし、3.0.9バージョンにログインし、そのサーバーをシャットダウンして3.1バージョンを起動すると、同じエラーが再度発生しました。部分的なトレースは次のとおりです。
activesupport(3.1.1)lib / active_support / message_verifier.rb:34:in
load' activesupport (3.1.1)
lib/active_support/message_verifier.rb:34:in
verify'actionpack(3.1.1)lib / action_dispatch / middleware / cookies.rb:280:in []'
actionpack (3.1.1)
lib/action_dispatch/middleware/session/cookie_store.rb:53:in
block in unpacked_cookie_data' actionpack(3.1.1)lib / action_dispatch / middleware / session / abstract_store.rb:55:in
stale_session_check!' actionpack (3.1.1)
lib/action_dispatch/middleware/session/cookie_store.rb:51:in
unpacked_cookie_data'rack(1.3.6)lib / Rack / session / cookie.rb:96:in
extract_session_id' actionpack (3.1.1)
lib/action_dispatch/middleware/session/abstract_store.rb:51:in
block in extract_session_id' actionpack(3.1.1)lib / action_dispatch / middleware / session / abstract_store.rb:55:in
stale_session_check!' actionpack (3.1.1)
lib/action_dispatch/middleware/session/abstract_store.rb:51:in
extract_session_id'rack(1.3.6)lib / Rack / session / abstract / id.rb:43:in load_session_id!' rack (1.3.6)
lib/rack/session/abstract/id.rb:32:in
[]' Rack(1.3.6)lib / Rack / session / abstract / id .rb:252:in current_session_id' rack
(1.3.6) lib/rack/session/abstract/id.rb:258:in
session_exists? ' ラック(1.3.6)lib / Rack / session / abstract / id.rb:104:in exists?' rack (1.3.6)
lib/rack/session/abstract/id.rb:114:in
load_for_read! ' ラック(1.3.6)lib / Rack / session / abstract / id.rb:64:inhas_key?' actionpack (3.1.1)
lib/action_dispatch/middleware/flash.rb:260:in
呼び出しで確認'actionpack(3.1.1)lib / action_dispatch / Middleware / flash.rb:261:in
call' rack (1.3.6) lib/rack/session/abstract/id.rb:195:in
context'ラック(1.3.6)lib / Rack / session / abstract / id.rb:190:in `call '
逆もまた真でした。3.1バージョンにログインし、そのサーバーをシャットダウンして3.0.9バージョンを起動すると、同じエラーが発生しました。部分的なトレースは次のとおりです。
activesupport(3.0.9)lib / active_support / message_verifier.rb:34:in verify'actionpack(3.0.9)lib / action_dispatch / Middleware /cookies.rb:253:in block in unpacked_cookie_data
load' activesupport (3.0.9)
lib/active_support/message_verifier.rb:34:in
' actionpack []'
actionpack (3.0.9)
lib/action_dispatch/middleware/session/cookie_store.rb:68:in
(3.0.9)lib / action_dispatch / middleware / session / abstract_store.rb:223:in
stale_session_check!' actionpack (3.0.9)
lib/action_dispatch/middleware/session/cookie_store.rb:66:in
unpacked_cookie_data'actionpack(3.0.9)lib / action_dispatch / Middleware / session / cookie_store.rb:57:in
extract_session_id' actionpack (3.0.9)
lib/action_dispatch/middleware/session/abstract_store.rb:39:in
load_session_id!' actionpack(3.0.9)lib / action_dispatch / middleware / session / abstract_store.rb:27:in []'
actionpack (3.0.9)
lib/action_dispatch/middleware/session/abstract_store.rb:210:in
current_session_id'actionpack(3.0.9)lib / action_dispatch / Middleware / session / abstract_store.rb:239:inexists
exists?' actionpack (3.0.9)
lib/action_dispatch/middleware/session/abstract_store.rb:96:in
?' actionpack(3.0.9)lib / action_dispatch / Middleware / session / abstract_store.rb:113:in
load_for_read!' actionpack (3.0.9)
lib/action_dispatch/middleware/session/abstract_store.rb:53:in
[]'actionpack(3.0.9)lib / action_dispatch / Middleware / flash.rb:178:
call' actionpack (3.0.9)
lib/action_dispatch/middleware/session/abstract_store.rb:149:in
電話'
私が注目すべきは、文字通りアップグレードの過程にいる必要がないということです。この問題を再現するには、同じ名前のCookieを設定しているこれら2つのバージョンのRailsにまたがる2つのアプリを実行するだけで済みます...おそらく順番に(私の実験のように)または同時に(私は試していません)。
うまくいけば、ここにいる他の誰かが、このゆるい説明に欠けている詳細を追加するために、これよりも十分な情報に基づいた答えを提供するでしょう。それまでの間、開発中にこの問題が発生し、内部の動作を気にしない場合は、Cookieをクリアしてください(上記のスレッドで@tscolariが提案しているように:https ://github.com/rails / rails / issues / 2509)そして一緒に移動します。乾杯。