aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/validations.rb
diff options
context:
space:
mode:
authorJamis Buck <jamis@37signals.com>2006-04-21 17:04:00 +0000
committerJamis Buck <jamis@37signals.com>2006-04-21 17:04:00 +0000
commit010a10f3a115602a40c6ad4b502f1158c9d40161 (patch)
treed0c31bca8d6db8f67458bbe811a3685908e78aed /activerecord/lib/active_record/validations.rb
parent1f80f540a7618e0d9c853319f6488e25ac201b2c (diff)
downloadrails-010a10f3a115602a40c6ad4b502f1158c9d40161.tar.gz
rails-010a10f3a115602a40c6ad4b502f1158c9d40161.tar.bz2
rails-010a10f3a115602a40c6ad4b502f1158c9d40161.zip
Add ActiveRecord::Errors#to_xml
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4243 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/validations.rb')
-rwxr-xr-xactiverecord/lib/active_record/validations.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/validations.rb b/activerecord/lib/active_record/validations.rb
index d31b53b941..9e58599f81 100755
--- a/activerecord/lib/active_record/validations.rb
+++ b/activerecord/lib/active_record/validations.rb
@@ -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