Day*_*ury 7 spree ruby-on-rails-3 rails-3-upgrade
在Spree中对产品列表没有分页并且仅列出前10个产品的错误行为进行故障排除时,我尝试在本地开发环境中重现错误,并在第一页加载时收到错误:
ArgumentError (dump format error)
Run Code Online (Sandbox Code Playgroud)
和往常一样,我先检查了我的另一个脑子.最热门的搜索结果是:https://github.com/rails/rails/issues/2509
虽然启动该线程的用户和其他几个海报尝试从Rails 3.0.9升级到Rails 3.1,但我认为它不适用于我的情况.我正在运行的Spree 0.60.2应用程序是在Rails 3.0.9.
然而,事实证明,只需清除我的localhost cookie就可以解决问题.为什么?
Day*_*ury 10
我将推测,因为我在我的开发环境中运行多个应用程序,包括相同应用程序的Rails 3.1/Spree 0.70版本,并且我通过localhost访问所有这些应用程序,所以存在某种冲突cookie,3.1版本设置3.0.9版本不能吃的cookie.它可能与@Fjan在他的帖子中提到的内容有关(https://github.com/rails/rails/issues/2509):
我跟踪了这个错误,因为会话中的FlashHash类已经更改为不再继承rails 3.1中的Hash类.
我做了一个实验.提供我并没有对任何一个版本的应用程序的登录,我可以开始一起来将其关闭,并启动其他不碰上在任这个问题.但是,当我登录到3.0.9版本然后关闭该服务器并启动3.1版本时,我再次收到相同的错误.这是部分跟踪:
activesupport(3.1.1)lib/active_support/message_verifier.rb:34:在
load' activesupport (3.1.1) lib/active_support/message_verifier.rb:34:in验证'actionpack(3.1.1)lib/action_dispatch/middleware/cookies.rb:280:[]' actionpack (3.1.1) lib/action_dispatch/middleware/session/cookie_store.rb:53:in在unpacked_cookie_data 中的块'actionpack(3.1.1)lib/action_dispatch/middleware/session/abstract_store.rb:55:在stale_session_check!' actionpack (3.1.1) lib/action_dispatch/middleware/session/cookie_store.rb:51:inunpacked_cookie_data' rack(1.3.6)lib/rack/session/cookie.rb:96:extract_session_id' actionpack (3.1.1) lib/action_dispatch/middleware/session/abstract_store.rb:51:in在extract_session_id'actionpack(3.1.1)中的 块中lib/action_dispatch/middleware/session/abstract_store.rb:55:在stale_session_check!' actionpack (3.1.1) lib/action_dispatch/middleware/session/abstract_store.rb:51:inextract_session_id' rack(1.3.6)lib/rack/session/abstract/id.rb:43:inload_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:在current_session_id' rack (1.3.6) lib/rack/session/abstract/id.rb:258:insession_exists中?' rack(1.3.6)lib/rack/session/abstract/id.rb:104:inexists?' rack (1.3.6) lib/rack/session/abstract/id.rb:114:inload_for_read!' rack(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:在call' rack (1.3.6) lib/rack/session/abstract/id.rb:195:in上下文'机架中(1.3. 6)lib/rack/session/abstract/id.rb:190:在`call'中
反过来也是如此.当我登录3.1版本然后关闭该服务器并启动3.0.9版本时,我收到了同样的错误.这是部分跟踪:
activesupport(3.0.9)lib/active_support/message_verifier.rb:34:在
load' activesupport (3.0.9) lib/active_support/message_verifier.rb:34:in验证'actionpack(3.0.9)lib/action_dispatch/middleware/cookies.rb:253:[]' actionpack (3.0.9) lib/action_dispatch/middleware/session/cookie_store.rb:68:in在unpacked_cookie_data 中的块'actionpack(3.0.9)lib/action_dispatch/middleware/session/abstract_store.rb:223:在stale_session_check!' actionpack (3.0.9) lib/action_dispatch/middleware/session/cookie_store.rb:66:inunpacked_cookie_data'actionpack(3.0.9)lib/action_dispatch/middleware/session/cookie_store.rb:57:inextract_session_id' actionpack (3.0.9) lib/action_dispatch/middleware/session/abstract_store.rb:39:inload_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:incurrent_session_id'actionpack(3.0.9)lib/action_dispatch/middleware/session/abstract_store.rb:239:inexists?' actionpack (3.0.9) lib/action_dispatch/middleware/session/abstract_store.rb:96:inexists?' actionpack(3.0.9)lib/action_dispatch/middleware/session/abstract_store.rb:113:inload_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:incall' actionpack (3.0.9) lib/action_dispatch/middleware/session/abstract_store.rb:149:incall'
值得注意的是,你不需要真正地进行升级.要重现此问题,您只需要运行两个版本的Rails,这两个版本的Rails设置具有相同名称的Cookie ...可能是按顺序(在我的实验中)或同时(我没有尝试过).
希望这里的其他人能提供比这更好的答案,以添加这个松散的解释所缺乏的细节.与此同时,如果您在开发过程中遇到此问题并且您不关心内部工作,请清除您的cookie(正如@tscolari在上面引用的主题中所建议的那样:https://github.com/rails/rails/issues/2509)并继续前进.干杯.
| 归档时间: |
|
| 查看次数: |
4573 次 |
| 最近记录: |