我已经让这个测试类试验了不在AR中的回调。但出于某种原因,我必须手动调用它们。在某种程度上,这似乎毫无意义。
class TestClass
include ActiveSupport::Callbacks
define_callbacks :save
set_callback :save, :before, :speak
set_callback :save, :after, :bark
def save
puts 'saving...'
end
def other_it
run_callbacks :save do
puts 'saving...'
end
end
def speak
puts "hi"
end
def bark
puts "ruff"
end
end
似乎我不必在:save方法中指定run_callback方法,但我显然必须这样做。我错过了什么?见这个输出:
ruby-1.8.7-p352 :016 > t = TestClass.new
ruby-1.8.7-p352 :017 > t.save
saving...
=> nil
ruby-1.8.7-p352 :018 > t.other_it
hi
saving...
ruff
=> nil
保存回调不会在save方法中运行,除非我手动调用它们。