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

47 lines
959 B
Markdown

## 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.