diff --git a/docs/general/configuration_options.md b/docs/general/configuration_options.md index 46465f06..d12e1bdf 100644 --- a/docs/general/configuration_options.md +++ b/docs/general/configuration_options.md @@ -5,6 +5,7 @@ The following configuration options can be set on `ActiveModel::Serializer.confi ## General - `adapter`: The [adapter](adapters.md) to use. Possible values: `:attributes, :json, :json_api`. Default: `:attributes`. +- `automatic_lookup`: Whether serializer should be automatically looked up or manually provided. Default: `true` ## JSON API diff --git a/lib/action_controller/serialization.rb b/lib/action_controller/serialization.rb index 5fefaedf..7861c117 100644 --- a/lib/action_controller/serialization.rb +++ b/lib/action_controller/serialization.rb @@ -21,6 +21,10 @@ module ActionController end def get_serializer(resource, options = {}) + unless options[:serializer] || options[:each_serializer] || ActiveModel::Serializer.config.automatic_lookup + return resource + end + if !use_adapter? warn 'ActionController::Serialization#use_adapter? has been removed. '\ "Please pass 'adapter: false' or see ActiveSupport::SerializableResource.new" diff --git a/lib/active_model/serializer/configuration.rb b/lib/active_model/serializer/configuration.rb index 9e33633e..df1f10c4 100644 --- a/lib/active_model/serializer/configuration.rb +++ b/lib/active_model/serializer/configuration.rb @@ -20,6 +20,7 @@ module ActiveModel config.adapter = :attributes config.jsonapi_resource_type = :plural + config.automatic_lookup = true end end end