Skip to content

Commit

Permalink
Merge pull request #1545 from CodedBeardedSignedTaylor/1506-document-…
Browse files Browse the repository at this point in the history
…passing-arbitrary-options-to-serializer

[DOCS] 1506 document passing arbitrary options to serializer
  • Loading branch information
bf4 committed Mar 7, 2016
2 parents 6b4c8df + 48f8a89 commit 1a312bc
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ This is the documentation of ActiveModelSerializers, it's focused on the **0.10.
- [How to add pagination links](howto/add_pagination_links.md)
- [Using ActiveModelSerializers Outside Of Controllers](howto/outside_controller_use.md)
- [Testing ActiveModelSerializers](howto/test.md)
- [Passing Arbitrary Options](howto/passing_arbitrary_options.md)

## Integrations

Expand Down
27 changes: 27 additions & 0 deletions docs/howto/passing_arbitrary_options.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[Back to Guides](../README.md)

# Passing Arbitrary Options To A Serializer

In addition to the [`serialization_scope`](../general/serializers.md#scope), any options passed to `render`
that are not reserved for the [adapter](../general/rendering.md#adapter_opts)
are available in the serializer as [instance_options](../general/serializers.md#instance_options).

For example, we could pass in a field, such as `user_id` into our serializer.

```ruby
# posts_controller.rb
class PostsController < ApplicationController
def dashboard
render json: @post, user_id: 12
end
end

# post_serializer.rb
class PostSerializer < ActiveModel::Serializer
attributes :id, :title, :body

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

0 comments on commit 1a312bc

Please sign in to comment.