Add ActiveRecord::Errors#to_xml
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4243 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
1f80f540a7
commit
010a10f3a1
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* Add ActiveRecord::Errors#to_xml [Jamis Buck]
|
||||
|
||||
* Properly quote index names in migrations (closes #4764) [John Long]
|
||||
|
||||
* Fix the HasManyAssociation#count method so it uses the new ActiveRecord::Base#count syntax, while maintaining backwards compatibility. [Rick]
|
||||
|
|
|
@ -156,6 +156,18 @@ module ActiveRecord
|
|||
|
||||
alias_method :count, :size
|
||||
alias_method :length, :size
|
||||
|
||||
# Return an XML representation of this error object.
|
||||
def to_xml(options={})
|
||||
options[:root] ||= "errors"
|
||||
options[:indent] ||= 2
|
||||
options[:builder] ||= Builder::XmlMarkup.new(:indent => options[:indent])
|
||||
|
||||
options[:builder].instruct! unless options.delete(:skip_instruct)
|
||||
options[:builder].errors do |e|
|
||||
full_messages.each { |msg| e.error(msg) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -995,6 +995,15 @@ class ValidationsTest < Test::Unit::TestCase
|
|||
r.topic = Topic.find :first
|
||||
assert r.valid?
|
||||
end
|
||||
|
||||
def test_errors_to_xml
|
||||
r = Reply.new :title => "Wrong Create"
|
||||
assert !r.valid?
|
||||
xml = r.errors.to_xml(:skip_instruct => true)
|
||||
assert_equal "<errors>", xml.first(8)
|
||||
assert xml.include?("<error>Title is Wrong Create</error>")
|
||||
assert xml.include?("<error>Content Empty</error>")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue