1

我已经制作了这个测试类来试验不在 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 

保存回调不在保存方法中运行,除非我手动调用它们。

4

0 回答 0