コピペコードで快適生活

明日使えるソースを自分のために

ActiveSupport::CallbacksでRubyクラスにコールバックを差し込む

ActiveRecordじゃなくてもコールバックは使えるんやで。

class Article
  include ActiveSupport::Callbacks

  define_callbacks :before_submit
  set_callback :before_submit, :before, :validation

  def validation
    puts 'Check!!!'
  end

  def submit
    puts 'SubmitStart'

    run_callbacks :before_submit do
      puts 'Submitting....'
    end

    puts "SubmitEnd"
  end
end

Article.new.submit
# SubmitStart
# Check!!!
# Submitting....
# SubmitEnd