module ActiveSupport::Callbacks::ClassMethods
def skip_callback(name, *filter_list, &block)
skip_callback :validate, :before, :check_membership, if: -> { self.age > 18 }
class Writer < Person
callback is skipped.
:unless options may be passed in order to control when the
Skip a previously set callback. Like +set_callback+, :if or
def skip_callback(name, *filter_list, &block) __update_callbacks(name, filter_list, block) do |target, chain, type, filters, options| filters.each do |filter| filter = chain.find {|c| c.matches?(type, filter) } if filter && options.any? new_filter = filter.clone(chain, self) chain.insert(chain.index(filter), new_filter) new_filter.recompile!(options) end chain.delete(filter) end target.send("_#{name}_callbacks=", chain) end end