我的before_save定义如下:
def before_save
self.token = generate_token
end
我想跳过它来进行特定的保存方法调用。所以在我的代码中我想做
@user.save
没有调用before_save过滤器。我能这样做吗?
答案 0 :(得分:8)
你可以这样做:
@user.send(:update_without_callbacks)
或者create_without_callbacks也可以。我用过这两个但我不知道是否有“save_without_callbacks” 无论哪种方式,都要谨慎使用。
答案 1 :(得分:0)
您还可以在方法中包含条件逻辑,以处理您不希望触发回调的情况。
def before_save
self.token = generate_token if token.blank?
end
不是一个很好的例子,但你明白了。