diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 2abeebce7..1f58ece5a 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -177,6 +177,10 @@ def json_key end end + def as_json + self.class.adapter.new(self).to_json + end + def id object.id if object end diff --git a/test/adapter_test.rb b/test/adapter_test.rb index d76559d55..14e9c1012 100644 --- a/test/adapter_test.rb +++ b/test/adapter_test.rb @@ -38,6 +38,10 @@ def test_create_adapter_with_override adapter = ActiveModel::Serializer::Adapter.create(@serializer, { adapter: :json_api}) assert_equal ActiveModel::Serializer::Adapter::JsonApi, adapter.class end + + def test_as_json_is_sent_to_adapter + assert_equal JSON.parse(@serializer.as_json), {"name" => nil, "description" => nil} + end end end end