mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-25 07:16:49 +00:00
Support for setting root element
This commit is contained in:
parent
ab5d40f38b
commit
95081410d2
@ -304,7 +304,12 @@ module ActiveModel
|
|||||||
return false if self._root == false
|
return false if self._root == false
|
||||||
|
|
||||||
class_name = self.class.name.demodulize.underscore.sub(/_serializer$/, '').to_sym unless self.class.name.blank?
|
class_name = self.class.name.demodulize.underscore.sub(/_serializer$/, '').to_sym unless self.class.name.blank?
|
||||||
self._root || class_name
|
|
||||||
|
if self._root == true
|
||||||
|
class_name
|
||||||
|
else
|
||||||
|
self._root || class_name
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def url_options
|
def url_options
|
||||||
|
|||||||
@ -318,6 +318,16 @@ class SerializerTest < ActiveModel::TestCase
|
|||||||
assert_equal({ :author => nil }, serializer.new(blog, :scope => user).as_json)
|
assert_equal({ :author => nil }, serializer.new(blog, :scope => user).as_json)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_true_root
|
||||||
|
blog = Blog.new
|
||||||
|
|
||||||
|
assert_equal({
|
||||||
|
:blog_with_root => {
|
||||||
|
:author => nil,
|
||||||
|
}
|
||||||
|
}, BlogWithRootSerializer.new(blog).as_json)
|
||||||
|
end
|
||||||
|
|
||||||
def test_root_false_on_load_active_model_serializers
|
def test_root_false_on_load_active_model_serializers
|
||||||
begin
|
begin
|
||||||
ActiveSupport.on_load(:active_model_serializers) do
|
ActiveSupport.on_load(:active_model_serializers) do
|
||||||
|
|||||||
@ -146,6 +146,10 @@ class BlogSerializer < ActiveModel::Serializer
|
|||||||
has_one :author, :serializer => AuthorSerializer
|
has_one :author, :serializer => AuthorSerializer
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class BlogWithRootSerializer < BlogSerializer
|
||||||
|
root true
|
||||||
|
end
|
||||||
|
|
||||||
class CustomPostSerializer < ActiveModel::Serializer
|
class CustomPostSerializer < ActiveModel::Serializer
|
||||||
attributes :title
|
attributes :title
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user