xray-rails: xray-rails is not compatible with Rails 5 beta?

I get an error after the latest version of xray is added to a Rails 5 project.

NoMethodError - undefined method `clean' for #<Hash:0x007f99b1576410>
Did you mean?  clear:
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/exception_wrapper.rb:118:in `clean_backtrace'
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/exception_wrapper.rb:52:in `application_trace'
  meta_request (0.3.4) lib/meta_request/event.rb:19:in `events_for_exception'
  meta_request (0.3.4) lib/meta_request/middlewares/app_request_handler.rb:17:in `rescue in call'
  meta_request (0.3.4) lib/meta_request/middlewares/app_request_handler.rb:24:in `call'
  meta_request (0.3.4) lib/meta_request/middlewares/meta_request_handler.rb:13:in `call'
  actionview (5.0.0.beta1) lib/action_view/digestor.rb:14:in `call'
  rack (2.0.0.alpha) lib/rack/etag.rb:25:in `call'
  rack (2.0.0.alpha) lib/rack/conditional_get.rb:25:in `call'
  rack (2.0.0.alpha) lib/rack/head.rb:12:in `call'
  rack (2.0.0.alpha) lib/rack/session/abstract/id.rb:220:in `context'
  rack (2.0.0.alpha) lib/rack/session/abstract/id.rb:214:in `call'
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/cookies.rb:608:in `call'
  activerecord (5.0.0.beta1) lib/active_record/query_cache.rb:36:in `call'
  activerecord (5.0.0.beta1) lib/active_record/connection_adapters/abstract/connection_pool.rb:963:in `call'
  activerecord (5.0.0.beta1) lib/active_record/migration.rb:524:in `call'
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
  activesupport (5.0.0.beta1) lib/active_support/callbacks.rb:97:in `__run_callbacks__'
  activesupport (5.0.0.beta1) lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
  activesupport (5.0.0.beta1) lib/active_support/callbacks.rb:90:in `run_callbacks'
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/reloader.rb:71:in `call'
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
  better_errors (2.1.1) lib/better_errors/middleware.rb:84:in `protected_app_call'
  better_errors (2.1.1) lib/better_errors/middleware.rb:79:in `better_errors_call'
  better_errors (2.1.1) lib/better_errors/middleware.rb:57:in `call'
  rack-contrib (1.2.0) lib/rack/contrib/response_headers.rb:17:in `call'
  meta_request (0.3.4) lib/meta_request/middlewares/headers.rb:16:in `call'
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
  web-console (3.0.0) lib/web_console/middleware.rb:27:in `call'
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
  railties (5.0.0.beta1) lib/rails/rack/logger.rb:42:in `call_app'
  railties (5.0.0.beta1) lib/rails/rack/logger.rb:24:in `block in call'
  activesupport (5.0.0.beta1) lib/active_support/tagged_logging.rb:70:in `block in tagged'
  activesupport (5.0.0.beta1) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (5.0.0.beta1) lib/active_support/tagged_logging.rb:70:in `tagged'
  railties (5.0.0.beta1) lib/rails/rack/logger.rb:24:in `call'
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/request_id.rb:24:in `call'
  rack (2.0.0.alpha) lib/rack/method_override.rb:22:in `call'
  rack (2.0.0.alpha) lib/rack/runtime.rb:22:in `call'
  activesupport (5.0.0.beta1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/load_interlock.rb:13:in `call'
  actionpack (5.0.0.beta1) lib/action_dispatch/middleware/static.rb:132:in `call'
  rack (2.0.0.alpha) lib/rack/sendfile.rb:111:in `call'
  railties (5.0.0.beta1) lib/rails/engine.rb:522:in `call'
  puma (2.15.3) lib/puma/server.rb:541:in `handle_request'
  puma (2.15.3) lib/puma/server.rb:388:in `process_client'
  puma (2.15.3) lib/puma/server.rb:270:in `block in run'
  puma (2.15.3) lib/puma/thread_pool.rb:106:in `block in spawn_thread'

Any advise? Thanks.

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 15

Most upvoted comments

@upsilon2gamma @victoryam @dipth Can you please test against my branch of xray-rails in PR #70 and verify that it fixes compatibility with Rails 5? I would like to get some real world testing before merging it in. Thanks!

Same here with Rails 5.0.0.beta3:

undefined method `variant' for nil:NilClass

      options = _normalize_args(*args, &block)
      #TODO: remove defined? when we restore AP <=> AV dependency
>     if defined?(request) && request.variant.present?
        options[:variant] = request.variant
      end
      _normalize_options(options)

actionpack (5.0.0.beta3) lib/abstract_controller/rendering.rb:126:in `_normalize_render'
actionpack (5.0.0.beta3) lib/abstract_controller/rendering.rb:46:in `render_to_string'
actionpack (5.0.0.beta3) lib/action_controller/metal/rendering.rb:41:in `render_to_string'
xray-rails (0.1.18) lib/xray/middleware.rb:82:in `render_xray_bar'
xray-rails (0.1.18) lib/xray/middleware.rb:77:in `block in inject_xray_bar!'
xray-rails (0.1.18) lib/xray/middleware.rb:77:in `sub!'
xray-rails (0.1.18) lib/xray/middleware.rb:77:in `inject_xray_bar!'
xray-rails (0.1.18) lib/xray/middleware.rb:48:in `call'

I’m getting the following with Rails 5 beta3:

NoMethodError (undefined method `variant' for nil:NilClass):

actionpack (5.0.0.beta3) lib/abstract_controller/rendering.rb:126:in `_normalize_render'
actionpack (5.0.0.beta3) lib/abstract_controller/rendering.rb:46:in `render_to_string'
actionpack (5.0.0.beta3) lib/action_controller/metal/rendering.rb:41:in `render_to_string'
xray-rails (0.1.18) lib/xray/middleware.rb:82:in `render_xray_bar'
xray-rails (0.1.18) lib/xray/middleware.rb:77:in `block in inject_xray_bar!'
xray-rails (0.1.18) lib/xray/middleware.rb:77:in `sub!'
xray-rails (0.1.18) lib/xray/middleware.rb:77:in `inject_xray_bar!'
xray-rails (0.1.18) lib/xray/middleware.rb:48:in `call'