mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +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
|
||||
|
||||
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
|
||||
|
||||
def url_options
|
||||
|
||||
@ -318,6 +318,16 @@ class SerializerTest < ActiveModel::TestCase
|
||||
assert_equal({ :author => nil }, serializer.new(blog, :scope => user).as_json)
|
||||
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
|
||||
begin
|
||||
ActiveSupport.on_load(:active_model_serializers) do
|
||||
|
||||
@ -146,6 +146,10 @@ class BlogSerializer < ActiveModel::Serializer
|
||||
has_one :author, :serializer => AuthorSerializer
|
||||
end
|
||||
|
||||
class BlogWithRootSerializer < BlogSerializer
|
||||
root true
|
||||
end
|
||||
|
||||
class CustomPostSerializer < ActiveModel::Serializer
|
||||
attributes :title
|
||||
end
|
||||
|
||||
Loading…
Reference in New Issue
Block a user