Merge pull request #1131 from joshk/active_model_xml_fix

Attributes with :string type should not be given the type passed in model. Closes #1058.
This commit is contained in:
José Valim
2011-05-18 12:55:28 -07:00
2 changed files with 8 additions and 2 deletions

View File

@@ -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

View File

@@ -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