ri > ActiveSupport::Callbacks

= ActiveSupport::Callbacks

------------------------------------------------------------------------
= Extended by:
(from /home/chedong/.local/share/rdoc)
  Concern
  ActiveSupport::DescendantsTracker

(from /home/chedong/.local/share/rdoc)
------------------------------------------------------------------------
Callbacks are code hooks that are run at key points in an object's life
cycle. The typical use case is to have a base class define a set of
callbacks relevant to the other functionality it supplies, so that
subclasses can install callbacks that enhance or modify the base
functionality without needing to override or redefine methods of the
base class.

Mixing in this module allows you to define the events in the object's
life cycle that will support callbacks (via
ClassMethods.define_callbacks), set the instance methods, procs, or
callback objects to be called (via ClassMethods.set_callback), and run
the installed callbacks at the appropriate times (via run_callbacks).

By default callbacks are halted by throwing :abort. See
ClassMethods.define_callbacks for details.

Three kinds of callbacks are supported: before callbacks, run before a
certain event; after callbacks, run after the event; and around
callbacks, blocks that surround the event, triggering it when they
yield. Callback code can be contained in instance methods, procs or
lambdas, or callback objects that respond to certain predetermined
methods. See ClassMethods.set_callback for details.

  class Record
    include ActiveSupport::Callbacks
    define_callbacks :save

    def save
      run_callbacks :save do
        puts "- save"
      end
    end
  end

  class PersonRecord < Record
    set_callback :save, :before, :saving_message
    def saving_message
      puts "saving..."
    end

    set_callback :save, :after do |object|
      puts "saved"
    end
  end

  person = PersonRecord.new
  person.save

Output:
  saving...
  - save
  saved
------------------------------------------------------------------------
= Constants:

CALLBACK_FILTER_TYPES:
  [not documented]


= Instance methods:

  run_callbacks

Generated by phpman v4.9.26-1-g511901d · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-07-29 00:52 @216.73.217.46
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!