mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +00:00
Merge pull request #1155 from CodedBeardedSignedTaylor/documentation
Outside controller use tutorial
This commit is contained in:
commit
2111ae8ec4
@ -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 pagination links](howto/add_pagination_links.md)
|
||||
- [Using AMS Outside Of Controllers](howto/outside_controller_use.md)
|
||||
|
||||
## Getting Help
|
||||
|
||||
|
||||
42
docs/howto/outside_controller_use.md
Normal file
42
docs/howto/outside_controller_use.md
Normal 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.
|
||||
Loading…
Reference in New Issue
Block a user