提交 149e3cd3 编写于 作者: G grosser 提交者: Steve Klabnik

fix respond_to without blocks not working if one of the blocks is all

上级 c3d001b0
## Rails 4.0.0 (unreleased) ## ## Rails 4.0.0 (unreleased) ##
* Fix `respond_to` not using formats that have no block if all is present. *Michael Grosser*
* New applications use an encrypted session store by default. * New applications use an encrypted session store by default.
*Santiago Pastorino* *Santiago Pastorino*
......
...@@ -420,7 +420,7 @@ def custom(mime_type, &block) ...@@ -420,7 +420,7 @@ def custom(mime_type, &block)
end end
def response def response
@responses[format] || @responses[Mime::ALL] @responses.fetch(format, @responses[Mime::ALL])
end end
def negotiate_format(request) def negotiate_format(request)
......
...@@ -80,6 +80,13 @@ def using_defaults_with_type_list ...@@ -80,6 +80,13 @@ def using_defaults_with_type_list
respond_to(:html, :xml) respond_to(:html, :xml)
end end
def using_defaults_with_all
respond_to do |type|
type.html
type.all{ render text: "ALL" }
end
end
def made_for_content_type def made_for_content_type
respond_to do |type| respond_to do |type|
type.rss { render :text => "RSS" } type.rss { render :text => "RSS" }
...@@ -301,6 +308,20 @@ def test_using_defaults ...@@ -301,6 +308,20 @@ def test_using_defaults
assert_equal "<p>Hello world!</p>\n", @response.body assert_equal "<p>Hello world!</p>\n", @response.body
end end
def test_using_defaults_with_all
@request.accept = "*/*"
get :using_defaults_with_all
assert_equal "HTML!", @response.body.strip
@request.accept = "text/html"
get :using_defaults_with_all
assert_equal "HTML!", @response.body.strip
@request.accept = "application/json"
get :using_defaults_with_all
assert_equal "ALL", @response.body
end
def test_using_defaults_with_type_list def test_using_defaults_with_type_list
@request.accept = "*/*" @request.accept = "*/*"
get :using_defaults_with_type_list get :using_defaults_with_type_list
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册