diff --git a/lib/web_console/extensions.rb b/lib/web_console/extensions.rb index 1599107f..834c90d8 100644 --- a/lib/web_console/extensions.rb +++ b/lib/web_console/extensions.rb @@ -1,17 +1,20 @@ ActionDispatch::DebugExceptions.class_eval do def render_exception_with_web_console(request, exception) render_exception_without_web_console(request, exception).tap do - backtrace_cleaner = request.env['action_dispatch.backtrace_cleaner'] + # Retain superficial Rails 4.2 compatibility. + env = Hash === request ? request : request.env + + backtrace_cleaner = env['action_dispatch.backtrace_cleaner'] error = ActionDispatch::ExceptionWrapper.new(backtrace_cleaner, exception).exception # Get the original exception if ExceptionWrapper decides to follow it. - request.env['web_console.exception'] = error + env['web_console.exception'] = error # ActionView::Template::Error bypass ExceptionWrapper original # exception following. The backtrace in the view is generated from # reaching out to original_exception in the view. if error.is_a?(ActionView::Template::Error) - request.env['web_console.exception'] = error.original_exception + env['web_console.exception'] = error.original_exception end end end diff --git a/web-console.gemspec b/web-console.gemspec index b85a8c5a..71f2ed84 100644 --- a/web-console.gemspec +++ b/web-console.gemspec @@ -15,7 +15,7 @@ Gem::Specification.new do |s| s.required_ruby_version = '>= 2.2.2' - rails_version = ">= 4.0" + rails_version = ">= 4.2" s.add_dependency "railties", rails_version s.add_dependency "activemodel", rails_version