Merge pull request #1195 from beauby/fix-id-override

Fix id override
This commit is contained in:
L. Preston Sego III 2015-09-23 17:24:35 -04:00
commit f2d0a918fe
2 changed files with 15 additions and 1 deletions

View File

@ -62,7 +62,7 @@ module ActiveModel
ActiveModelSerializers.silence_warnings do
define_method key do
object.read_attribute_for_serialization(attr)
end unless (key != :id && method_defined?(key)) || _fragmented.respond_to?(attr)
end unless method_defined?(key) || _fragmented.respond_to?(attr)
end
end

View File

@ -57,6 +57,20 @@ module ActiveModel
adapter = ActiveModel::Serializer::Adapter::Json.new(attributes_serializer.new(@blog))
assert_equal({ blog: { type: 'stuff' } }, adapter.serializable_hash)
end
def test_id_attribute_override_before
serializer = Class.new(ActiveModel::Serializer) do
def id
'custom'
end
attribute :id
end
hash = ActiveModel::SerializableResource.new(@blog, adapter: :json, serializer: serializer).serializable_hash
assert_equal('custom', hash[:blog][:id])
end
end
end
end