Sha256: 7121f4db478887fedbfac09a810b18ad5990c9fb56d8a68dbde326781a6f7b18
Contents?: true
Size: 1.47 KB
Versions: 1
Compression:
Stored size: 1.47 KB
Contents
module ActionController # Action Controller Serialization # # Overrides render :json to check if the given object implements +active_model_serializer+ # as a method. If so, use the returned serializer instead of calling +to_json+ in the object. # # This module also provides a serialization_scope method that allows you to configure the # +serialization_scope+ of the serializer. Most apps will likely set the +serialization_scope+ # to the current user: # # class ApplicationController < ActionController::Base # serialization_scope :current_user # end # # If you need more complex scope rules, you can simply override the serialization_scope: # # class ApplicationController < ActionController::Base # private # # def serialization_scope # current_user # end # end # module Serialization extend ActiveSupport::Concern include ActionController::Renderers included do class_attribute :_serialization_scope self._serialization_scope = :current_user end def serialization_scope send(_serialization_scope) end def _render_option_json(json, options) if json.respond_to?(:active_model_serializer) && (serializer = json.active_model_serializer) json = serializer.new(json, serialization_scope, options) end super end module ClassMethods def serialization_scope(scope) self._serialization_scope = scope end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
active_model_serializers-0.1.0 | lib/action_controller/serialization.rb |