diff options
author | Jim Herzberg <jimmiesh@gmail.com> | 2011-05-18 15:52:55 -0400 |
---|---|---|
committer | Josh Kalderimis <josh.kalderimis@gmail.com> | 2011-05-18 15:52:55 -0400 |
commit | fbf99653f14273773e4437390ecdca736f495fb9 (patch) | |
tree | 951a8b018c05841e0d65570f29ffbb962a504f4c /activemodel | |
parent | 3a5a378056ceed24c37c8834d65c1985aae56879 (diff) | |
download | rails-fbf99653f14273773e4437390ecdca736f495fb9.tar.gz rails-fbf99653f14273773e4437390ecdca736f495fb9.tar.bz2 rails-fbf99653f14273773e4437390ecdca736f495fb9.zip |
Attributes with :string type should not be given the type passed in model serialization options. Closes #1058
Diffstat (limited to 'activemodel')
-rw-r--r-- | activemodel/lib/active_model/serializers/xml.rb | 2 | ||||
-rw-r--r-- | activemodel/test/cases/serializers/xml_serialization_test.rb | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/activemodel/lib/active_model/serializers/xml.rb b/activemodel/lib/active_model/serializers/xml.rb index 19639b1363..eb3975f86b 100644 --- a/activemodel/lib/active_model/serializers/xml.rb +++ b/activemodel/lib/active_model/serializers/xml.rb @@ -25,7 +25,7 @@ module ActiveModel def decorations decorations = {} decorations[:encoding] = 'base64' if type == :binary - decorations[:type] = type unless type == :string + decorations[:type] = (type == :string) ? nil : type decorations[:nil] = true if value.nil? decorations end diff --git a/activemodel/test/cases/serializers/xml_serialization_test.rb b/activemodel/test/cases/serializers/xml_serialization_test.rb index 8f5c196850..f978191d22 100644 --- a/activemodel/test/cases/serializers/xml_serialization_test.rb +++ b/activemodel/test/cases/serializers/xml_serialization_test.rb @@ -92,7 +92,7 @@ class XmlSerializationTest < ActiveModel::TestCase test "should serialize string" do assert_match %r{<name>aaron stack</name>}, @contact.to_xml end - + test "should serialize nil" do assert_match %r{<pseudonyms nil=\"true\"></pseudonyms>}, @contact.to_xml(:methods => :pseudonyms) end @@ -132,4 +132,10 @@ class XmlSerializationTest < ActiveModel::TestCase xml = @contact.to_xml(:procs => [ proc ]) assert_match %r{<name-reverse>kcats noraa</name-reverse>}, xml end + + test "should serialize string correctly when type passed" do + xml = @contact.to_xml :type => 'Contact' + assert_match %r{<contact type="Contact">}, xml + assert_match %r{<name>aaron stack</name>}, xml + end end |