aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/errors.rb
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-11-26 11:54:15 -0200
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-11-26 11:54:15 -0200
commitcb23d6a5ee34f6f7de15174cbd7b2920d6f4c956 (patch)
tree02ed837134c62ca5f0087ce4ed3942f5683613ba /activerecord/lib/active_record/errors.rb
parent1a35f907a975f352bd1a90bfc116415249c49393 (diff)
parent3e30c5d4222f816cdffd5241d56ef9442f6d1903 (diff)
downloadrails-cb23d6a5ee34f6f7de15174cbd7b2920d6f4c956.tar.gz
rails-cb23d6a5ee34f6f7de15174cbd7b2920d6f4c956.tar.bz2
rails-cb23d6a5ee34f6f7de15174cbd7b2920d6f4c956.zip
Merge pull request #17674 from recursive-madman/activerecord-error-improvement
Add #record attribute to RecordNotFound and RecordDestroyed exceptions.
Diffstat (limited to 'activerecord/lib/active_record/errors.rb')
-rw-r--r--activerecord/lib/active_record/errors.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/errors.rb b/activerecord/lib/active_record/errors.rb
index 5b3fdf16f5..ca4fede7a2 100644
--- a/activerecord/lib/active_record/errors.rb
+++ b/activerecord/lib/active_record/errors.rb
@@ -52,10 +52,29 @@ module ActiveRecord
# Raised by ActiveRecord::Base.save! and ActiveRecord::Base.create! methods when record cannot be
# saved because record is invalid.
class RecordNotSaved < ActiveRecordError
+ attr_reader :record
+
+ def initialize(record)
+ @record = record
+ super()
+ end
end
# Raised by ActiveRecord::Base.destroy! when a call to destroy would return false.
+ #
+ # begin
+ # complex_operation_that_internally_calls_destroy!
+ # rescue ActiveRecord::RecordNotDestroyed => invalid
+ # puts invalid.record.errors
+ # end
+ #
class RecordNotDestroyed < ActiveRecordError
+ attr_reader :record
+
+ def initialize(record)
+ @record = record
+ super()
+ end
end
# Superclass for all database execution errors.