diff --git a/lib/action_controller/serialization.rb b/lib/action_controller/serialization.rb index cc007a58..b0630ee7 100644 --- a/lib/action_controller/serialization.rb +++ b/lib/action_controller/serialization.rb @@ -68,6 +68,8 @@ module ActionController options.delete(:serializer) || ActiveModel::Serializer.serializer_for(resource) + return unless serializer + options[:scope] = serialization_scope unless options.has_key?(:scope) serializer.new(resource, options) diff --git a/test/integration/action_controller/serialization_test.rb b/test/integration/action_controller/serialization_test.rb index 66fcea8f..660d1670 100644 --- a/test/integration/action_controller/serialization_test.rb +++ b/test/integration/action_controller/serialization_test.rb @@ -115,5 +115,21 @@ module ActionController assert_equal '{"name":"Name 1","description":"Description 1 - current_user"}', @response.body end end + + class RailsSerializerTest < ActionController::TestCase + class MyController < ActionController::Base + def render_using_rails_behavior + render json: JSON.dump(hello: 'world') + end + end + + tests MyController + + def test_render_using_rails_behavior + get :render_using_rails_behavior + assert_equal 'application/json', @response.content_type + assert_equal '{"hello":"world"}', @response.body + end + end end end