diff options
author | claudiob <claudiob@gmail.com> | 2014-12-14 22:10:15 -0800 |
---|---|---|
committer | claudiob <claudiob@gmail.com> | 2015-01-02 15:31:56 -0800 |
commit | bb78af73ab7e86fd9662e8810e346b082a1ae193 (patch) | |
tree | eef33ea8ee271af92d621fe68155f169d51b5a65 /activerecord/lib/active_record/autosave_association.rb | |
parent | 91b8129320522f664801f122daea4a7628db90a7 (diff) | |
download | rails-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.rb | 2 |
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 |