Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 偶尔发生但不可重复的TypeError(可以使用默认过程转储哈希):_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 3 偶尔发生但不可重复的TypeError(可以使用默认过程转储哈希):

Ruby on rails 3 偶尔发生但不可重复的TypeError(可以使用默认过程转储哈希):,ruby-on-rails-3,Ruby On Rails 3,我在生产中偶尔会遇到这种错误。我无法复制它-不在dev中,也不在prod中,。如果导致此错误的同一个req被重新运行,那么经过几次尝试后,它就会工作。为什么会这样 另一个问题是异常记录器也没有捕捉到这个错误-也许这是一个线索,但不确定。欢迎任何建议 TypeError (can't dump hash with default proc): activesupport (3.2.2) lib/active_support/message_verifier.rb:53:in `dump'

我在生产中偶尔会遇到这种错误。我无法复制它-不在dev中,也不在prod中,。如果导致此错误的同一个req被重新运行,那么经过几次尝试后,它就会工作。为什么会这样

另一个问题是异常记录器也没有捕捉到这个错误-也许这是一个线索,但不确定。欢迎任何建议

TypeError (can't dump hash with default proc):
  activesupport (3.2.2) lib/active_support/message_verifier.rb:53:in `dump'
  activesupport (3.2.2) lib/active_support/message_verifier.rb:53:in `generate'
  actionpack (3.2.2) lib/action_dispatch/middleware/cookies.rb:297:in `[]='
  actionpack (3.2.2) 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.2) lib/action_dispatch/middleware/cookies.rb:338:in `call'
  activerecord (3.2.2) lib/active_record/query_cache.rb:64:in `call'
  activerecord (3.2.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:443:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
  activesupport (3.2.2) lib/active_support/callbacks.rb:405:in `_run__462345741__call__579728663__callbacks'
  activesupport (3.2.2) lib/active_support/callbacks.rb:405:in `__run_callback'
  activesupport (3.2.2) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
  activesupport (3.2.2) lib/active_support/callbacks.rb:81:in `run_callbacks'
  actionpack (3.2.2) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  rack (1.4.1) lib/rack/sendfile.rb:102:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.2) lib/rails/rack/logger.rb:26:in `call_app'
  railties (3.2.2) lib/rails/rack/logger.rb:16:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.1) lib/rack/runtime.rb:17:in `call'

activesupport (3.2.2) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.1) lib/rack/lock.rb:15:in `call'
  rack-rewrite (1.2.1) lib/rack/rewrite.rb:20:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/static.rb:61:in `call'
  rack-cache (1.2) lib/rack/cache/context.rb:136:in `forward'
  rack-cache (1.2) lib/rack/cache/context.rb:143:in `pass'
  rack-cache (1.2) lib/rack/cache/context.rb:155:in `invalidate'
  rack-cache (1.2) lib/rack/cache/context.rb:71:in `call!'
  rack-cache (1.2) lib/rack/cache/context.rb:51:in `call'
  railties (3.2.2) lib/rails/engine.rb:479:in `call'
  railties (3.2.2) lib/rails/application.rb:220:in `call'
  railties (3.2.2) lib/rails/railtie/configurable.rb:30:in `method_missing'
  passenger (3.0.11) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
  passenger (3.0.11) lib/phusion_passenger/abstract_request_handler.rb:513:in `accept_and_process_next_request'
  passenger (3.0.11) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
  passenger (3.0.11) lib/phusion_passenger/rack/application_spawner.rb:206:in `start_request_handler'
  passenger (3.0.11) lib/phusion_passenger/rack/application_spawner.rb:171:in `block in handle_spawn_application'
  passenger (3.0.11) lib/phusion_passenger/utils.rb:479:in `safe_fork'
  passenger (3.0.11) lib/phusion_passenger/rack/application_spawner.rb:166:in `handle_spawn_application'
  passenger (3.0.11) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  passenger (3.0.11) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  passenger (3.0.11) lib/phusion_passenger/abstract_server.rb:180:in `start'
  passenger (3.0.11) lib/phusion_passenger/rack/application_spawner.rb:129:in `start'
  passenger (3.0.11) lib/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rack_application'
  passenger (3.0.11) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
  passenger (3.0.11) lib/phusion_passenger/spawn_manager.rb:246:in `block in spawn_rack_application'
  passenger (3.0.11) lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
  <internal:prelude>:10:in `synchronize'
  passenger (3.0.11) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
  passenger (3.0.11) lib/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application'
  passenger (3.0.11) lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
  passenger (3.0.11) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
  passenger (3.0.11) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  passenger (3.0.11) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  passenger (3.0.11) helper-scripts/passenger-spawn-server:99:in `<main>'
TypeError(无法使用默认进程转储哈希):
activesupport(3.2.2)lib/active\u-support/message\u-verifier.rb:53:in'dump'
activesupport(3.2.2)lib/active\u-support/message\u-verifier.rb:53:in'generate'
actionpack(3.2.2)lib/action\u dispatch/middleware/cookies.rb:297:in`[]='
actionpack(3.2.2)lib/action\u dispatch/middleware/session/cookie\u store.rb:67:in'set\u cookie'
机架(1.4.1)lib/rack/session/abstract/id.rb:330:在“提交会话”中
机架(1.4.1)lib/rack/session/abstract/id.rb:206:在“上下文”中
机架(1.4.1)lib/rack/session/abstract/id.rb:200:in'call'
actionpack(3.2.2)lib/action\u dispatch/middleware/cookies.rb:338:in'call'
activerecord(3.2.2)lib/active\u record/query\u cache.rb:64:in'call'
activerecord(3.2.2)lib/active\u record/connection\u adapters/abstract/connection\u pool.rb:443:in'call'
actionpack(3.2.2)lib/action_dispatch/middleware/callbacks.rb:28:in'block in call'
activesupport(3.2.2)lib/active\u support/callbacks.rb:405:in`_run\u 462345741\u call\u\u 579728663\u callbacks'
activesupport(3.2.2)lib/active\u support/callbacks.rb:405:in`\uu run\u callback'
activesupport(3.2.2)lib/active\u-support/callbacks.rb:385:in`_-run\u-call\u-callbacks'
activesupport(3.2.2)lib/active\u support/callbacks.rb:81:in'run\u callbacks'
actionpack(3.2.2)lib/action_dispatch/middleware/callbacks.rb:27:in'call'
rack(1.4.1)lib/rack/sendfile.rb:102:in'call'
actionpack(3.2.2)lib/action_dispatch/middleware/remote_ip.rb:31:in'call'
actionpack(3.2.2)lib/action\u dispatch/middleware/debug\u exceptions.rb:16:in'call'
actionpack(3.2.2)lib/action\u dispatch/middleware/show\u exceptions.rb:56:in'call'
railties(3.2.2)lib/rails/rack/logger.rb:26:in'call_app'
railties(3.2.2)lib/rails/rack/logger.rb:16:in'call'
actionpack(3.2.2)lib/action\u dispatch/middleware/request\u id.rb:22:in'call'
rack(1.4.1)lib/rack/methodoverride.rb:21:in'call'
rack(1.4.1)lib/rack/runtime.rb:17:in'call'
activesupport(3.2.2)lib/active\u support/cache/strategy/local\u cache.rb:72:in'call'
机架(1.4.1)lib/rack/lock.rb:15:in'call'
机架重写(1.2.1)lib/rack/rewrite.rb:20:in'call'
actionpack(3.2.2)lib/action\u dispatch/middleware/static.rb:61:in'call'
机架缓存(1.2)lib/rack/cache/context.rb:136:in'forward'
机架缓存(1.2)lib/rack/cache/context.rb:143:in'pass'
机架缓存(1.2)lib/rack/cache/context.rb:155:在'invalidate'中
机架缓存(1.2)lib/rack/cache/context.rb:71:in'call!'
机架缓存(1.2)lib/rack/cache/context.rb:51:in'call'
railties(3.2.2)lib/rails/engine.rb:479:in'call'
railties(3.2.2)lib/rails/application.rb:220:in'call'
railties(3.2.2)lib/rails/railtie/configurable.rb:30:in'method_missing'
乘客(3.0.11)lib/phusion\u乘客/机架/请求处理程序。rb:96:正在处理请求
乘客(3.0.11)lib/phusion\u乘客/abstract\u请求处理程序。rb:513:“接受和处理下一个请求”
passenger(3.0.11)lib/phusion\u passenger/abstract\u request\u handler.rb:274:in'main\u loop'
乘客(3.0.11)lib/phusion\u乘客/rack/application\u产卵器。rb:206:“启动请求处理程序”中
乘客(3.0.11)lib/phusion\u乘客/rack/application\u繁殖器。rb:171:in`block in handle\u spawn\u application'
乘客(3.0.11)lib/phusion_乘客/utils.rb:479:in‘safe_fork’
乘客(3.0.11)lib/phusion\u乘客/rack/application\u产卵器。rb:166:in'handle\u spawn\u application'
passenger(3.0.11)lib/phusion\u passenger/abstract\u server.rb:357:in'server\u main\u loop'
passenger(3.0.11)lib/phusion\u passenger/abstract\u server.rb:206:in'start\u synchronously'
乘客(3.0.11)lib/phusion\u乘客/abstract\u服务器。rb:180:in'start'
乘客(3.0.11)lib/phusion\u乘客/rack/application\u产卵器。rb:129:in'start'
乘客(3.0.11)lib/phusion\u乘客/spawn\u管理器。rb:253:in`spawn\u机架应用程序中的块(2级)'
passenger(3.0.11)lib/phusion\u passenger/abstract\u server\u collection.rb:132:in'lookup\u或\u add'
乘客(3.0.11)lib/phusion\u乘客/spawn\u管理器。rb:246:in`block in spawn\u rack\u应用程序'
passenger(3.0.11)lib/phusion\u passenger/abstract\u server\u collection.rb:82:in'block in synchronize'
:10:在“同步”中
passenger(3.0.11)lib/phusion\u passenger/abstract\u server\u collection.rb:79:in'synchronize'
乘客(3.0.11)lib/phusion\u乘客/spawn\u经理。rb:244:in'spawn\u机架应用程序'
乘客(3.0.11)lib/phusion\u乘客/spawn\u经理。rb:137:in'spawn\u应用程序'
乘客(3.0.11)lib/phusion\u乘客/spawn\u经理。rb:275:在“handle\u spawn\u应用程序”中
passenger(3.0.11)lib/phusion\u passenger/abstract\u server.rb:357:in'server\u main\u loop'
passenger(3.0.11)lib/phusion\u passenger/abstract\u server.rb:206:in'start\u synchronously'
乘客(3.0.11)助手脚本/乘客产卵服务器:99:in`'

问题如下 我是这样把错误塞进flash[:alert]的

flash[:alert] = new_user.errors
我把这个改成了

flash[:alert] = new_user.errors.full_messages.join(",")
并解决了错误。显然,错误数组无法转储,因此出现错误。

这似乎是相关的:当您尝试在flash中存储复杂对象时(有时)会发生这种情况。我想他们被组织起来了。最好只存储字符串(如您所发现的)。