Method: ActiveSupport::Callbacks::ClassMethods#skip_callback
- Defined in:
- lib/active_support/callbacks.rb
#skip_callback(name, *filter_list, &block) ⇒ Object
Skip a previously set callback. Like set_callback, :if or :unless options may be passed in order to control when the callback is skipped.
class Writer < Person
skip_callback :validate, :before, :check_membership, :if => lambda { self.age > 18 }
end
516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 |
# File 'lib/active_support/callbacks.rb', line 516 def skip_callback(name, *filter_list, &block) __update_callbacks(name, filter_list, block) do |target, chain, type, filters, | filters.each do |filter| filter = chain.find {|c| c.matches?(type, filter) } if filter && .any? new_filter = filter.clone(chain, self) chain.insert(chain.index(filter), new_filter) new_filter.recompile!(, [:per_key] || {}) end chain.delete(filter) end target.send("_#{name}_callbacks=", chain) end end |