aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib/active_model
diff options
context:
space:
mode:
authorclaudiob <claudiob@gmail.com>2014-12-08 06:35:25 -0800
committerclaudiob <claudiob@gmail.com>2015-01-02 15:31:56 -0800
commitf767981286b4c7dcb96e061a6f3edcc334008ea8 (patch)
tree35afe22d27693178a1f0a08f20e36c7eeb5a9189 /activemodel/lib/active_model
parentd217daf6a740de7e4925872abe632982cfaab89b (diff)
downloadrails-f767981286b4c7dcb96e061a6f3edcc334008ea8.tar.gz
rails-f767981286b4c7dcb96e061a6f3edcc334008ea8.tar.bz2
rails-f767981286b4c7dcb96e061a6f3edcc334008ea8.zip
Deprecate `false` as the way to halt AM validation callbacks
Before this commit, returning `false` in an ActiveModel validation callback such as `before_validation` 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 'activemodel/lib/active_model')
-rw-r--r--activemodel/lib/active_model/validations/callbacks.rb5
1 files changed, 2 insertions, 3 deletions
diff --git a/activemodel/lib/active_model/validations/callbacks.rb b/activemodel/lib/active_model/validations/callbacks.rb
index 449f1a0299..4b58ef66e3 100644
--- a/activemodel/lib/active_model/validations/callbacks.rb
+++ b/activemodel/lib/active_model/validations/callbacks.rb
@@ -15,15 +15,14 @@ module ActiveModel
# after_validation :do_stuff_after_validation
# end
#
- # Like other <tt>before_*</tt> callbacks if +before_validation+ returns
- # +false+ then <tt>valid?</tt> will not be called.
+ # Like other <tt>before_*</tt> callbacks if +before_validation+ throws
+ # +:abort+ then <tt>valid?</tt> will not be called.
module Callbacks
extend ActiveSupport::Concern
included do
include ActiveSupport::Callbacks
define_callbacks :validation,
- terminator: ->(_,result_lambda) { result_lambda.call == false },
skip_after_callbacks_if_terminated: true,
scope: [:kind, :name]
end