Module: ActiveModelSerializers

Extended by:
ActiveSupport::Autoload
Defined in:
lib/active_model_serializers/logging.rb,
lib/active_model_serializers.rb,
lib/active_model_serializers/test.rb,
lib/active_model_serializers/model.rb,
lib/active_model_serializers/adapter.rb,
lib/active_model_serializers/railtie.rb,
lib/active_model_serializers/callbacks.rb,
lib/active_model_serializers/deprecate.rb,
lib/active_model_serializers/test/schema.rb,
lib/active_model_serializers/adapter/base.rb,
lib/active_model_serializers/adapter/json.rb,
lib/active_model_serializers/adapter/null.rb,
lib/active_model_serializers/json_pointer.rb,
lib/active_model_serializers/lookup_chain.rb,
lib/active_model_serializers/model/caching.rb,
lib/active_model_serializers/deserialization.rb,
lib/active_model_serializers/test/serializer.rb,
lib/active_model_serializers/adapter/json_api.rb,
lib/active_model_serializers/adapter/attributes.rb,
lib/active_model_serializers/adapter/json_api/link.rb,
lib/active_model_serializers/adapter/json_api/meta.rb,
lib/active_model_serializers/serializable_resource.rb,
lib/active_model_serializers/serialization_context.rb,
lib/active_model_serializers/adapter/json_api/error.rb,
lib/active_model_serializers/adapter/json_api/jsonapi.rb,
lib/active_model_serializers/register_jsonapi_renderer.rb,
lib/active_model_serializers/adapter/json_api/relationship.rb,
lib/active_model_serializers/adapter/json_api/deserialization.rb,
lib/active_model_serializers/adapter/json_api/pagination_links.rb,
lib/active_model_serializers/adapter/json_api/resource_identifier.rb

Overview

Based on discussion in github.com/rails/rails/pull/23712#issuecomment-184977238, the JSON API media type will have its own format/renderer.

> We recommend the media type be registered on its own as jsonapi when a jsonapi Renderer and deserializer (Http::Parameters::DEFAULT_PARSERS) are added.

Usage:

ActiveSupport.on_load(:action_controller) do

require 'active_model_serializers/register_jsonapi_renderer'

end

And then in controllers, use ‘render jsonapi: model` rather than `render json: model, adapter: :json_api`.

For example, in a controller action, we can: respond_to do |format|

format.jsonapi { render jsonapi: model }

end

or

render jsonapi: model

No wrapper format needed as it does not apply (i.e. no ‘wrap_parameters format: [jsonapi]`)

Defined Under Namespace

Modules: Adapter, Callbacks, Deprecate, Deserialization, JsonPointer, Jsonapi, Logging, LookupChain, Test Classes: Model, Railtie, SerializableResource, SerializationContext

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.loggerObject

Returns the value of attribute logger.



24
25
26
# File 'lib/active_model_serializers.rb', line 24

def logger
  @logger
end

Class Method Details

.configObject



27
28
29
# File 'lib/active_model_serializers.rb', line 27

def self.config
  ActiveModel::Serializer.config
end

.default_include_directiveJSONAPI::IncludeDirective

Memoized default include directive

Returns:

  • (JSONAPI::IncludeDirective)


42
43
44
# File 'lib/active_model_serializers.rb', line 42

def self.default_include_directive
  @default_include_directive ||= JSONAPI::IncludeDirective.new(config.default_includes, allow_wildcard: true)
end

.eager_load!Object



54
55
56
57
# File 'lib/active_model_serializers.rb', line 54

def self.eager_load!
  super
  ActiveModel::Serializer.eager_load!
end

.location_of_callerObject

The file name and line number of the caller of the caller of this method.



32
33
34
35
36
37
38
# File 'lib/active_model_serializers.rb', line 32

def self.location_of_caller
  caller[1] =~ /(.*?):(\d+).*?$/i
  file = Regexp.last_match(1)
  lineno = Regexp.last_match(2).to_i

  [file, lineno]
end

.silence_warningsObject



46
47
48
49
50
51
52
# File 'lib/active_model_serializers.rb', line 46

def self.silence_warnings
  original_verbose = $VERBOSE
  $VERBOSE = nil
  yield
ensure
  $VERBOSE = original_verbose
end