aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/autosave_association.rb
diff options
context:
space:
mode:
authorclaudiob <claudiob@gmail.com>2014-12-14 22:10:15 -0800
committerclaudiob <claudiob@gmail.com>2015-01-02 15:31:56 -0800
commitbb78af73ab7e86fd9662e8810e346b082a1ae193 (patch)
treeeef33ea8ee271af92d621fe68155f169d51b5a65 /activerecord/lib/active_record/autosave_association.rb
parent91b8129320522f664801f122daea4a7628db90a7 (diff)
downloadrails-bb78af73ab7e86fd9662e8810e346b082a1ae193.tar.gz
rails-bb78af73ab7e86fd9662e8810e346b082a1ae193.tar.bz2
rails-bb78af73ab7e86fd9662e8810e346b082a1ae193.zip
Deprecate `false` as the way to halt AR callbacks
Before this commit, returning `false` in an ActiveRecord `before_` callback such as `before_create` would halt the callback chain. After this commit, the behavior is deprecated: will still work until the next release of Rails but will also display a deprecation warning. The preferred way to halt a callback chain is to explicitly `throw(:abort)`.
Diffstat (limited to 'activerecord/lib/active_record/autosave_association.rb')
-rw-r--r--activerecord/lib/active_record/autosave_association.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/autosave_association.rb b/activerecord/lib/active_record/autosave_association.rb
index 5045e3065e..fa6c5e9e8c 100644
--- a/activerecord/lib/active_record/autosave_association.rb
+++ b/activerecord/lib/active_record/autosave_association.rb
@@ -200,7 +200,7 @@ module ActiveRecord
after_create save_method
after_update save_method
else
- define_non_cyclic_method(save_method) { save_belongs_to_association(reflection) }
+ define_non_cyclic_method(save_method) { throw(:abort) if save_belongs_to_association(reflection) == false }
before_save save_method
end