Ruby元编程-使用Before/After回调和aliasu方法对方法进行子类化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby元编程-使用Before/After回调和aliasu方法对方法进行子类化相关的知识,希望对你有一定的参考价值。
require 'rubygems' require 'active_model' class BaseModel extend ActiveModel::Callbacks define_model_callbacks :save before_save { puts "[save:before]"} after_save { puts "[save:after]"} def do_save; end def save _run_save_callbacks do do_save end end alias_method :superclass_save, :save end class SomeModel < BaseModel def save puts "[saving...]" true end end SomeModel.class_eval do alias_method :subclass_save, :save alias_method :do_save, :subclass_save alias_method :save, :superclass_save end model = SomeModel.new model.save
以上是关于Ruby元编程-使用Before/After回调和aliasu方法对方法进行子类化的主要内容,如果未能解决你的问题,请参考以下文章
ruby 在LinkedList上实现了insert_before / after
:after/::after和:before/::before的区别