diff --git a/lib/action_controller/serialization.rb b/lib/action_controller/serialization.rb index 3097cdc40..b60683158 100644 --- a/lib/action_controller/serialization.rb +++ b/lib/action_controller/serialization.rb @@ -13,6 +13,11 @@ def serialization_scope(scope) end end + class << self + attr_accessor :enabled + end + self.enabled = true + included do class_attribute :_serialization_scope self._serialization_scope = :current_user diff --git a/lib/active_model_serializers/railtie.rb b/lib/active_model_serializers/railtie.rb index 1c8ff3c9d..36e13b255 100644 --- a/lib/active_model_serializers/railtie.rb +++ b/lib/active_model_serializers/railtie.rb @@ -9,12 +9,6 @@ class Railtie < Rails::Railtie ActiveModel::Serializer.serializers_cache.clear end - initializer 'active_model_serializers.action_controller' do - ActiveSupport.on_load(:action_controller) do - include(::ActionController::Serialization) - end - end - initializer 'active_model_serializers.prepare_serialization_context' do SerializationContext.url_helpers = Rails.application.routes.url_helpers SerializationContext.default_url_options = Rails.application.routes.default_url_options @@ -29,6 +23,11 @@ class Railtie < Rails::Railtie # We want this hook to run after the config has been set, even if ActionController has already loaded. ActiveSupport.on_load(:action_controller) do ActiveModelSerializers.config.cache_store = cache_store + # Only include controller mixin when enabled + # https://github.com/rails-api/active_model_serializers/issues/1500 + # https://github.com/rails-api/active_model_serializers/pull/592 + # Rails.configuration.action_controller.render_json_with_active_model_serializers + include ::ActionController::Serialization if ::ActionController::Serialization.enabled end end