active_model_serializers/docs/general/passing_arbitrary_options.md
CodedBeardedSignedTaylor 558769981e rough draft
2016-02-28 22:41:26 -05:00

959 B

Passing Arbitrary Options to A Serializer

Let's say you have a basic Post Controller:

class PostController < ApplicationController
  def dashboard  
    render json: @posts
  end
end

Odds are, your serializer will look something like this:

class PostSerializer < ActiveModel::Serializer
  attributes :id, :title, :body
end

This works all fine and well, but maybe you passing in some "artibrary" options into the serializer. Here's what you would do:

posts_controller.rb

...
  def dashboard  
    render json: @posts, user_id: 12
  end
...

posts_serializer.rb

...
  def comments_by_me  
    Comments.where(user_id: instance_options[:user_id], post_id: object.id)
  end
...

These options can be anything that isn't already reserved for use by AMS. For example, you won't be able to pass in a meta or root option like the example above. Those parameters are reserved for specific behavior within the app.