我想找一个gem或者编写一个实现方法钩子的代码。
class A
include SomeModule
before_hook :meth, lambda { puts 'bla' }
def meth
puts 'meth'
end
end
# A.new.meth => "bla\nmeth\n"
我正在使用Rails,我知道回调和过滤器,但
meth
不是动作请帮帮我......
更新
我找到了一个用于自动化此代码的gem:
include ActiveSupport::Callbacks
define_callbacks :meth_callback
set_callback :meth_callback, :before do |object|
# my code
end
def meth_with_callback
run_callbacks(:meth_callback) { meth }
end
alias_method_chain :meth, :callback
答案 0 :(得分:5)
define_model_callbacks :create
def create
run_callbacks :create do
# do your thing here
end
end
您甚至可以编写一个小帮助方法来隐藏此run_callbacks
行。它可能看起来像这样:
hooked_method :create do
# do your thing here
end