aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-05-24 11:22:11 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2011-05-24 11:22:11 -0700
commit176883a906e49a52fbfe9990bf18c16b3170161d (patch)
tree00e0431398d656742280bb2c4f858398c32762f6 /activerecord
parent559d809609570466ea1f86b0255e0269b43a2a3b (diff)
downloadrails-176883a906e49a52fbfe9990bf18c16b3170161d.tar.gz
rails-176883a906e49a52fbfe9990bf18c16b3170161d.tar.bz2
rails-176883a906e49a52fbfe9990bf18c16b3170161d.zip
rescue record invalid exceptions and return false from the save method. fixes #796
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/persistence.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/persistence.rb b/activerecord/lib/active_record/persistence.rb
index b9041f44d8..e84a479a13 100644
--- a/activerecord/lib/active_record/persistence.rb
+++ b/activerecord/lib/active_record/persistence.rb
@@ -33,7 +33,11 @@ module ActiveRecord
# +save+ returns +false+. See ActiveRecord::Callbacks for further
# details.
def save(*)
- create_or_update
+ begin
+ create_or_update
+ rescue ActiveRecord::RecordInvalid
+ false
+ end
end
# Saves the model.