mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-25 07:16:49 +00:00
Don't pass serializer option to associated serializers
Fixes #870
Commit af81a40 introduced passing a serializer's 'options'
along to its associated model serializers.
Thus, an explicit 'each_serializer' passed to render for a
singular resource would be passed on as the implicit 'serializer'
for its associations.
With @bf4
This commit is contained in:
@@ -55,6 +55,14 @@ module ActionController
|
||||
|
||||
render json: [@post], each_serializer: PostPreviewSerializer
|
||||
end
|
||||
|
||||
def render_using_explicit_each_serializer
|
||||
@comment = Comment.new({ id: 1, body: 'ZOMG A COMMENT' })
|
||||
@author = Author.new(id: 1, name: 'Joao Moura.')
|
||||
@post = Post.new({ id: 1, title: 'New Post', body: 'Body', comments: [@comment], author: @author })
|
||||
|
||||
render json: @post, each_serializer: PostSerializer
|
||||
end
|
||||
end
|
||||
|
||||
tests MyController
|
||||
@@ -105,6 +113,31 @@ module ActionController
|
||||
|
||||
assert_equal expected.to_json, @response.body
|
||||
end
|
||||
|
||||
def test_render_using_explicit_each_serializer
|
||||
get :render_using_explicit_each_serializer
|
||||
|
||||
expected = {
|
||||
id: 1,
|
||||
title: 'New Post',
|
||||
body: 'Body',
|
||||
comments: [
|
||||
{
|
||||
id: 1,
|
||||
body: 'ZOMG A COMMENT' }
|
||||
],
|
||||
blog: {
|
||||
id: 999,
|
||||
name: 'Custom blog'
|
||||
},
|
||||
author: {
|
||||
id: 1,
|
||||
name: 'Joao Moura.'
|
||||
}
|
||||
}
|
||||
|
||||
assert_equal expected.to_json, @response.body
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user