Skip to content
Browse files

Return null type format when format is not know

When requesting a controller with the following code with a unknown format:

    def my_action
      respond_to do |format|
        format.json { head :ok }
        format.any { render text: 'Default response' }
      end
    end

we should render the default response instead of raising ActionController::UnknownFormat

Fixes #14462

Conflicts:
	actionpack/CHANGELOG.md
	actionpack/test/controller/mime/respond_with_test.rb

Conflicts:
	actionpack/CHANGELOG.md
  • Loading branch information...
1 parent ed6894b commit 4d21e496e1740ec61a6797b8b6644c14c271c6ac @rafaelfranca rafaelfranca committed Apr 14, 2014
7 actionpack/CHANGELOG.md
@@ -1,3 +1,10 @@
+* Returns null type format when format is not know and controller is using `any`
+ format block.
+
+ Fixes #14462.
+
+ *Rafael Mendonça França*
+
* Improve routing error page with fuzzy matching search.
*Winston*
View
2 actionpack/lib/action_dispatch/http/mime_negotiation.rb
@@ -129,7 +129,7 @@ def negotiate_mime(order)
end
end
- order.include?(Mime::ALL) ? formats.first : nil
+ order.include?(Mime::ALL) ? format : nil
end
protected
View
5 actionpack/test/controller/mime/respond_to_test.rb
@@ -492,6 +492,11 @@ def test_handle_any_any_xml
assert_equal 'Whatever you ask for, I got it', @response.body
end
+ def test_handle_any_any_unkown_format
+ get :handle_any_any, { format: 'php' }
+ assert_equal 'Whatever you ask for, I got it', @response.body
+ end
+
def test_browser_check_with_any_any
@request.accept = "application/json, application/xml"
get :json_xml_or_html

0 comments on commit 4d21e49

Please sign in to comment.
Something went wrong with that request. Please try again.