diff --git a/actionpack/lib/action_controller/metal/mime_responds.rb b/actionpack/lib/action_controller/metal/mime_responds.rb index 4993583c29..b47abb8b8c 100644 --- a/actionpack/lib/action_controller/metal/mime_responds.rb +++ b/actionpack/lib/action_controller/metal/mime_responds.rb @@ -466,7 +466,9 @@ module ActionController #:nodoc: end def method_missing(name) - yield if name == @variant || (name == :none && @variant.nil?) + if block_given? + yield if name == @variant || (name == :none && @variant.nil?) + end end end end diff --git a/actionpack/test/controller/mime/respond_to_test.rb b/actionpack/test/controller/mime/respond_to_test.rb index cd93043360..c258bbec06 100644 --- a/actionpack/test/controller/mime/respond_to_test.rb +++ b/actionpack/test/controller/mime/respond_to_test.rb @@ -170,7 +170,7 @@ class RespondToController < ActionController::Base respond_to do |format| format.html do |variant| variant.phone { render text: "phone" } - variant.none { render text: "none" } + variant.none end end end diff --git a/actionpack/test/fixtures/respond_to/variant_plus_none_for_format.html.erb b/actionpack/test/fixtures/respond_to/variant_plus_none_for_format.html.erb new file mode 100644 index 0000000000..c86c3f3551 --- /dev/null +++ b/actionpack/test/fixtures/respond_to/variant_plus_none_for_format.html.erb @@ -0,0 +1 @@ +none \ No newline at end of file