Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions lib/action_controller/responder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -192,14 +192,14 @@ def to_js
# responds to :to_format and display it.
#
def to_format
if !get? && has_errors? && !response_overridden?
display_errors
elsif has_view_rendering? || response_overridden?
default_render
else
api_behavior
begin
if !get? && has_errors? && !response_overridden?
return display_errors
elsif has_view_rendering? || response_overridden?
return default_render
end
rescue ActionView::MissingTemplate
end
rescue ActionView::MissingTemplate
api_behavior
end

Expand Down
8 changes: 8 additions & 0 deletions test/action_controller/respond_with_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -732,6 +732,14 @@ def test_raises_missing_renderer_if_an_api_behavior_with_no_renderer
end
end

def test_api_behavior_error_is_not_caused_by_missing_template
@controller = CsvRespondWithController.new
error = assert_raise ActionController::MissingRenderer do
get :index, format: "csv"
end
assert_nil error.cause
end

def test_error_is_raised_if_no_respond_to_is_declared_and_respond_with_is_called
@controller = EmptyRespondWithController.new
@request.accept = "*/*"
Expand Down