一位用户最近在注册我们的网站时触发了一个错误。
我试图重现该错误,但没有成功。我了解“é”字符存在问题。它没有被这个特定用户识别,但它已经被许多其他用户识别。
从他的用户代理中,我知道他在 IE11 上遇到了这个错误。
这是错误的痕迹:
An ActionController::BadRequest occurred in registrations#new:
Invalid query parameters: Invalid encoding for parameter: Martin�
-------------------------------
Request:
-------------------------------
ERROR: Failed to generate exception summary:
ActionView::Template::Error: Invalid query parameters: Invalid encoding for parameter: Martin�
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/request/utils.rb:36:in `check_param_encoding'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/request/utils.rb:31:in `block in check_param_encoding'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/request/utils.rb:31:in `each_value'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/request/utils.rb:31:in `check_param_encoding'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/http/request.rb:350:in `block in GET'
/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.4/lib/rack/request.rb:57:in `fetch'
/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.4/lib/rack/request.rb:57:in `fetch_header'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/http/request.rb:347:in `GET'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/http/parameters.rb:53:in `parameters'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/http/filter_parameters.rb:41:in `filtered_parameters'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier/views/exception_notifier/_request.text.erb:4:in `_vendor_bundle_ruby_______gems_exception_notification_______lib_exception_notifier_views_exception_notifier__request_text_erb__475519309245050229_56429000'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/template.rb:157:in `block in render'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications.rb:168:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/template.rb:352:in `instrument_render_template'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/template.rb:155:in `render'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/partial_renderer.rb:342:in `block in render_partial'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/abstract_renderer.rb:42:in `block in instrument'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications.rb:166:in `block in instrument'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications.rb:166:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/abstract_renderer.rb:41:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/partial_renderer.rb:331:in `render_partial'
/app/vendor/bundle/ruby/2.4.0/gems/scout_apm-2.4.18/lib/scout_apm/tracer.rb:77:in `block in render_partial_with_scout_instrument'
/app/vendor/bundle/ruby/2.4.0/gems/scout_apm-2.4.18/lib/scout_apm/tracer.rb:34:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/scout_apm-2.4.18/lib/scout_apm/tracer.rb:73:in `render_partial_with_scout_instrument'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/partial_renderer.rb:310:in `render'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/renderer.rb:47:in `render_partial'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/helpers/rendering_helper.rb:35:in `render'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier/views/exception_notifier/exception_notification.text.erb:9:in `block in _vendor_bundle_ruby_______gems_exception_notification_______lib_exception_notifier_views_exception_notifier_exception_notification_text_erb__1927315004961554431_56948680'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier/views/exception_notifier/exception_notification.text.erb:7:in `map'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier/views/exception_notifier/exception_notification.text.erb:7:in `_vendor_bundle_ruby_______gems_exception_notification_______lib_exception_notifier_views_exception_notifier_exception_notification_text_erb__1927315004961554431_56948680'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/template.rb:157:in `block in render'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications.rb:168:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/template.rb:352:in `instrument_render_template'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/template.rb:155:in `render'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/template_renderer.rb:52:in `block (2 levels) in render_template'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/abstract_renderer.rb:42:in `block in instrument'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications.rb:166:in `block in instrument'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications.rb:166:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/abstract_renderer.rb:41:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/template_renderer.rb:51:in `block in render_template'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/template_renderer.rb:59:in `render_with_layout'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/template_renderer.rb:50:in `render_template'
/app/vendor/bundle/ruby/2.4.0/gems/scout_apm-2.4.18/lib/scout_apm/tracer.rb:77:in `block in render_template_with_scout_instrument'
/app/vendor/bundle/ruby/2.4.0/gems/scout_apm-2.4.18/lib/scout_apm/tracer.rb:34:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/scout_apm-2.4.18/lib/scout_apm/tracer.rb:73:in `render_template_with_scout_instrument'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/template_renderer.rb:14:in `render'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/renderer.rb:42:in `render_template'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/renderer/renderer.rb:23:in `render'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/rendering.rb:103:in `_render_template'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/rendering.rb:83:in `render_to_body'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/abstract_controller/rendering.rb:24:in `render'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/base.rb:921:in `block in collect_responses'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/collector.rb:26:in `custom'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/abstract_controller/collector.rb:9:in `text'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier/email_notifier.rb:117:in `block in compose_email'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/base.rb:922:in `collect_responses'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/base.rb:830:in `mail'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier/email_notifier.rb:116:in `compose_email'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier/email_notifier.rb:42:in `exception_notification'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/abstract_controller/base.rb:186:in `process_action'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/callbacks.rb:97:in `run_callbacks'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/abstract_controller/callbacks.rb:19:in `process_action'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/abstract_controller/base.rb:124:in `process'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/rescuable.rb:23:in `block in process'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/rescuable.rb:15:in `handle_exceptions'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/rescuable.rb:22:in `process'
/app/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/rendering.rb:30:in `process'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/base.rb:609:in `block in process'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications.rb:166:in `block in instrument'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications.rb:166:in `instrument'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/base.rb:608:in `process'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/message_delivery.rb:105:in `block in processed_mailer'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/message_delivery.rb:104:in `tap'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/message_delivery.rb:104:in `processed_mailer'
/app/vendor/bundle/ruby/2.4.0/gems/actionmailer-5.1.5/lib/action_mailer/message_delivery.rb:95:in `deliver_now'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier/email_notifier.rb:172:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier.rb:117:in `fire_notification'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier.rb:58:in `block in notify_exception'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier.rb:57:in `each'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notifier.rb:57:in `notify_exception'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notification/rack.rb:51:in `rescue in call'
/app/vendor/bundle/ruby/2.4.0/gems/exception_notification-4.3.0/lib/exception_notification/rack.rb:40:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/warden-1.2.7/lib/warden/manager.rb:36:in `block in call'
/app/vendor/bundle/ruby/2.4.0/gems/warden-1.2.7/lib/warden/manager.rb:35:in `catch'
/app/vendor/bundle/ruby/2.4.0/gems/warden-1.2.7/lib/warden/manager.rb:35:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.4/lib/rack/etag.rb:25:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.4/lib/rack/conditional_get.rb:25:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.4/lib/rack/head.rb:12:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.4/lib/rack/session/abstract/id.rb:232:in `context'
/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.4/lib/rack/session/abstract/id.rb:226:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/cookies.rb:613:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/callbacks.rb:97:in `run_callbacks'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/callbacks.rb:24:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/rack/logger.rb:36:in `call_app'
/app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/rack/logger.rb:24:in `block in call'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `block in tagged'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:26:in `tagged'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `tagged'
/app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/rack/logger.rb:24:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/request_id.rb:25:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.4/lib/rack/method_override.rb:22:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.4/lib/rack/runtime.rb:22:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/executor.rb:12:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/static.rb:125:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.4/lib/rack/sendfile.rb:111:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/scout_apm-2.4.18/lib/scout_apm/instruments/middleware_summary.rb:58:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/engine.rb:522:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/puma-3.11.2/lib/puma/configuration.rb:225:in `call'
/app/vendor/bundle/ruby/2.4.0/gems/puma-3.11.2/lib/puma/server.rb:624:in `handle_request'
/app/vendor/bundle/ruby/2.4.0/gems/puma-3.11.2/lib/puma/server.rb:438:in `process_client'
/app/vendor/bundle/ruby/2.4.0/gems/puma-3.11.2/lib/puma/server.rb:302:in `block in run'
/app/vendor/bundle/ruby/2.4.0/gems/puma-3.11.2/lib/puma/thread_pool.rb:120:in `block in spawn_thread'
我还可以访问这两个参数:
* rack.request.query_hash :{"name"=>"Martin\xE9"}
* rack.request.query_string : &name=Martin_
我想了解为什么这个错误会出现在这个特定的用户身上,而不是其他名字也有口音的人身上。它可能与浏览器或邮箱有关吗?有没有办法解决这个问题?