class JSONAPIHelpers::Serializers::Model
Attributes
current_language[R]
current_user[R]
fields[R]
included[R]
key_transform[R]
meta[R]
model_scope[R]
request[R]
serializer[R]
Public Class Methods
new( model_scope, included: [], fields: {}, current_user: nil, current_language: nil, meta: {}, request: nil, key_transform: JSONAPIHelpers.config.key_transform )
click to toggle source
private
# File lib/jsonapi_helpers/serializers/model.rb, line 16 def initialize( model_scope, included: [], fields: {}, current_user: nil, current_language: nil, meta: {}, request: nil, key_transform: JSONAPIHelpers.config.key_transform ) @model_scope = model_scope @included = included @fields = fields @meta = meta @current_user = current_user @current_language = current_language @key_transform = key_transform # NOTE: ActiveModel::Serializer#serializer_for is from active_model_serializers @serializer = ActiveModel::Serializer.serializer_for(model_scope) @request = ActionDispatchRequestWrapper.new(request) end
serialize(*args)
click to toggle source
# File lib/jsonapi_helpers/serializers/model.rb, line 10 def self.serialize(*args) new(*args).serialize end
Public Instance Methods
serialize()
click to toggle source
# File lib/jsonapi_helpers/serializers/model.rb, line 54 def serialize # NOTE: ActiveModelSerializers::Adapter#create is from active_model_serializers ActiveModelSerializers::Adapter.create( serializer_instance, key_transform: key_transform, include: included, fields: fields, meta: meta, serialization_context: request ) end
serializer_instance()
click to toggle source
# File lib/jsonapi_helpers/serializers/model.rb, line 38 def serializer_instance serializer_options = { scope: { current_user: current_user, current_language: current_language, current_language_id: current_language&.id } } if @model_scope.respond_to?(:to_ary) serializer_options[:each_serializer] = serializer end serializer.new(@model_scope, serializer_options) end