SerializableResource handles no serializer like controller

This commit is contained in:
Benjamin Fleischer
2016-03-24 21:56:35 -05:00
parent 5af7d96294
commit 84197e4dad
3 changed files with 16 additions and 15 deletions

View File

@@ -30,11 +30,19 @@ module ActiveModel
serializer_opts[:scope_name] = scope_name
end
# NOTE: if no adapter is available, returns the resource itself. (i.e. adapter is a no-op)
def adapter
@adapter ||= ActiveModelSerializers::Adapter.create(serializer_instance, adapter_opts)
@adapter ||= find_adapter
end
alias adapter_instance adapter
def find_adapter
return resource unless serializer?
ActiveModelSerializers::Adapter.create(serializer_instance, adapter_opts)
rescue ActiveModel::Serializer::CollectionSerializer::NoSerializerError
resource
end
def serializer_instance
@serializer_instance ||= serializer.new(resource, serializer_opts)
end