module Callbacks

Ruby on Rails 2.3.18

Since v2.2.3

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Callbacks are hooks into the lifecycle of an object that allow you to trigger logic before or after an alteration of the object state.

Mixing in this module allows you to define callbacks in your class.

Example:

class Storage
  include ActiveSupport::Callbacks

  define_callbacks :before_save, :after_save
end

class ConfigStorage < Storage
  before_save :saving_message
  def saving_message
    puts "saving..."
  end

  after_save do |object|
    puts "saved"
  end

  def save
    run_callbacks(:before_save)
    puts "- save"
    run_callbacks(:after_save)
  end
end

config = ConfigStorage.new
config.save

Output:

saving...
- save
saved

Callbacks from parent classes are inherited.

Example:

class Storage
  include ActiveSupport::Callbacks

  define_callbacks :before_save, :after_save

  before_save :prepare
  def prepare
    puts "preparing save"
  end
end

class ConfigStorage < Storage
  before_save :saving_message
  def saving_message
    puts "saving..."
  end

  after_save do |object|
    puts "saved"
  end

  def save
    run_callbacks(:before_save)
    puts "- save"
    run_callbacks(:after_save)
  end
end

config = ConfigStorage.new
config.save

Output:

preparing save
saving...
- save
saved

Namespace

Modules

Classes

Extends

Methods (defined here)

Used by

Included by (4)

Methods (inherited)

From ActiveSupport::Callbacks::ClassMethods (1)

Type at least 2 characters to search.

↑↓ navigate · open · esc close