Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update rendering.md #1557

Closed
wants to merge 3 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/general/rendering.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ PR please :)
The resource root is derived from the class name of the resource being serialized.
e.g. `UserPostSerializer.new(UserPost.new)` will be serialized with the root `user_post` or `user_posts` according the adapter collection pluralization rules.

Specify the root by passing it as an argument to `render`. For example:
When using the JSON adapter in your initializer (ActiveModelSerializers.config.adapter = :json), you can specify the root by passing it as an argument to `render`. For example:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When using the JSON adapter in your initializer (ActiveModelSerializers.config.adapter = :json)

You can also use render adapter: :json to specify the adapter, so I think in your initializer (ActiveModelSerializers.config.adapter = :json) might be misleading here.

Maybe it would be more clear to start the section by stating that root only applies to JSON adapter?


```ruby
render json: @user_post, root: "admin_post", adapter: :json
Expand All @@ -169,7 +169,7 @@ This will be rendered as:
}
}
```
Note: the `Attributes` adapter (default) does not include a resource root.
Note: the `Attributes` adapter (default) does not include a resource root. You also will not be able to override the 'data' root if you are using the :json_api adapter.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

You also will not be able to override the 'data' root if you are using the :json_api adapter.

I rather reword this for two reasons:

  1. Of the three adapters, only the JSON adapter has a document root that can be set via option.
    • (root is more the resource root, which may also be the document root. It is tightly coupled to the internal concepts of json_key and _type. Those concepts should be unified.)
  2. The JSON API spec multiple top-level nodes. None of them are a resource root, so it doesn't make sense to pass in a root.

Still a great opportunity for clean up, just a little different than current diff! :)


#### serializer

Expand Down