Search code examples
ruby-on-rails-4.1active-model-serializers

Rails Active Model Serializer Include Concerns


Is it possible to include code in a serializer? I have some commonly used methods that I'd like to just include instead of always repeating them.


Solution

  • If you are looking for some code as an example:

    1) Create your specialized serializer that will include the specialized concern

    # app/serializers/specialized_serializer.rb
    
    class SpecializedSerializer < DefaultSerializer
      include SpecializedConcern
      ...
    end
    

    2) Create your specialized concern in a new concern folder

    # app/serializers/concerns/specialized_concern.rb
    
    module SpecializedConcern
      extend ActiveSupport::Concern
    
      included do
        include SomeModule
        ...
      end
    
      def some_method
        ...
      end
    end
    

    3) Add your new serialized concerns folder to your applications autoloaded path

    # config/application.rb
    ...
    config.autoload_paths += "#{config.root}/app/serializers/concerns"
    ...