diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 06deb23b..b070664c 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -226,7 +226,6 @@ module ActiveModel name = klass.name.demodulize.underscore.sub(/_serializer$/, '') klass.class_eval do - alias_method name.to_sym, :object root name.to_sym unless self._root == false end end diff --git a/test/serializer_test.rb b/test/serializer_test.rb index 6be28ff8..9fe10e64 100644 --- a/test/serializer_test.rb +++ b/test/serializer_test.rb @@ -29,6 +29,17 @@ class SerializerTest < ActiveModel::TestCase }, hash) end + def test_attribute_method_with_name_as_serializer_prefix + object = SomeObject.new("something") + object_serializer = SomeSerializer.new(object, {}) + + hash = object_serializer.as_json + + assert_equal({ + :some => { :some => "something" } + }, hash) + end + def test_serializer_receives_scope user = User.new user_serializer = UserSerializer.new(user, :scope => {:scope => true}) diff --git a/test/test_fakes.rb b/test/test_fakes.rb index c69203bc..73d57088 100644 --- a/test/test_fakes.rb +++ b/test/test_fakes.rb @@ -63,7 +63,7 @@ class MyUserSerializer < ActiveModel::Serializer def serializable_hash hash = attributes - hash = hash.merge(:super_user => true) if my_user.super_user? + hash = hash.merge(:super_user => true) if object.super_user? hash end end @@ -143,6 +143,13 @@ class CustomBlogSerializer < ActiveModel::Serializer has_one :public_user, :key => :user, :serializer => UserSerializer end +class SomeSerializer < ActiveModel::Serializer + attributes :some +end + +class SomeObject < Struct.new(:some) +end + # Set up some classes for polymorphic testing class Attachment < Model def attachable