我的模型中定义了一个回调
after_commit :method, on: [:create, :update]
在我的测试中,我想使用set_callback
方法禁用此回调。我该怎么办?
答案 0 :(得分:1)
set_callback
用于添加对模型的回调:
http://apidock.com/rails/ActiveSupport/Callbacks/ClassMethods/set_callback
我认为skip_callback
将在这里使用:
http://apidock.com/rails/ActiveSupport/Callbacks/ClassMethods/skip_callback
你会这样称呼:
SomeModel.skip_callback(:commit, :after, :method)
它经常在测试工厂中使用,例如跳过名为before_save
的{{1}}方法:
some_method
答案 1 :(得分:-1)
对于名为SomeModel
的任何模型,您可以使用回调类型调用方法skip_callback
:
SomeModel.skip_callback(:after_commit)
然后,您在SomeModel记录上执行的任何操作都将在没有after_commit回调的情况下完成。
文档:http://apidock.com/rails/ActiveSupport/Callbacks/ClassMethods/skip_callback