ruby-on-rails – TypeError(没有_dump_data为类Proc定义):

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – TypeError(没有_dump_data为类Proc定义):前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用我的rails应用程序中的以下代码在会话中存储一个值
session[:key] = value

我得到以下错误

TypeError (no _dump_data is defined for class Proc):
activesupport (3.2.9) lib/active_support/message_verifier.rb:53:in `dump'
 activesupport (3.2.9) lib/active_support/message_verifier.rb:53:in `generate'
 actionpack (3.2.9) lib/action_dispatch/middleware/cookies.rb:300:in `[]='
actionpack (3.2.9) lib/action_dispatch/middleware/session/cookie_store.rb:67:in    `set_cookie'
rack (1.4.1) lib/rack/session/abstract/id.rb:330:in `commit_session'
rack (1.4.1) lib/rack/session/abstract/id.rb:206:in `context'
rack (1.4.1) lib/rack/session/abstract/id.rb:200:in `call'
actionpack (3.2.9) lib/action_dispatch/middleware/cookies.rb:341:in `call'
activerecord (3.2.9) lib/active_record/query_cache.rb:64:in `call'
activerecord (3.2.9)    lib/active_record/connection_adapters/abstract/connection_pool.rb:479:in `call'
actionpack (3.2.9) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
activesupport (3.2.9) lib/active_support/callbacks.rb:405:in `

任何帮助是非常感谢.

解决方法

你的价值是一个Proc或者是在其中的一个Proc嵌套的. Procs和lambdas不能被序列化/封送/转储,因为它们是封闭的.关闭取决于创建时内存中的内容,因此以后无法正确排序.

this answer.

我不知道在我的情况下我会做什么,看起来我必须找出一种方法来完成我的任务,而不依赖于Procs.

猜你在找的Ruby相关文章