outside controller use tutorial

This commit is contained in:
Terminator3 2015-09-15 15:55:35 -05:00
parent 0c42e32499
commit 173f21d942
2 changed files with 43 additions and 0 deletions

View File

@ -14,6 +14,7 @@ This is the documentation of AMS, it's focused on the **0.10.x version.**
- [How to add root key](howto/add_root_key.md) - [How to add root key](howto/add_root_key.md)
- [How to add pagination links](howto/add_pagination_links.md) - [How to add pagination links](howto/add_pagination_links.md)
- [Using AMS Outside Of Controllers](howto/outside_controller_use.md)
## Getting Help ## Getting Help

View File

@ -0,0 +1,42 @@
## Using AMS Outside Of A Controller
### Serializing a resource
In AMS versions 0.10 or later, serializing resources outside of the controller context is fairly simple:
```ruby
# Create our resource
post = Post.create(title: "Sample post", body: "I love Active Model Serializers!")
# Optional options parameters
options = {}
# Create a serializable resource instance
serializable_resource = ActiveModel::SerializableResource.new(post, options)
# Convert your resource into json
model_json = serializable_resource.as_json
```
### Retrieving a Resource's Active Model Serializer
If you want to retrieve a serializer for a specific resource, you can do the following:
```ruby
# Create our resource
post = Post.create(title: "Another Example", body: "So much fun.")
# Optional options parameters
options = {}
# Retrieve the default serializer for posts
serializer = ActiveModel::Serializer.serializer_for(post, options)
```
You could also retrieve the serializer via:
```ruby
ActiveModel::SerializableResource.new(post, options).serializer
```
Both approaches will return an instance, if any, of the resource's serializer.