Make root node in Active Model Serializer

active-model-serializers, activerecord, ruby-on-rails

Solution

This was covered in RailsCast #409 Active Model Serializers.

In order to remove the root node, you add `root: false` in the call to `render` in your controller. Assuming your `contact`s in JSON come from a `contacts#index` method, your code may look something like:

def index
  @contacts = Contacts.all
  respond_to do |format|
    format.html
    format.json { render json: @contacts, root: false }
  end
end

Or, if you don't want any root nodes in any of your JSON, in your `ApplicationController`, add the following method:

def default_serializer_options
  {root: false}
end

Problem

I have an array of JSON in my Rails App in this format using Active Model Serializer: ``` [ { "contact" : {} }, { "contact" : {} } ] ``` How do I make it so that I remove one level of node above the contact USING active model serializer like this: ``` [ { }, { } ] ``` I also want to remove the node name "contact".

Original source