我的模型中定义了以下after_save
回调。
after_save :validate_image, :publish, :update_some_data, :send_notifications
是否可以根据after_save
中的某些条件跳过其余的validate_image
回调,所以像这样 -
def validate_image
if image_not_valid
# skip rest of the callbacks in the after_save chain
destroy # destroy this record
end
end
注意: - 我也在基于该条件销毁记录,并且我有一些需要执行的“after_destroy”回调。
我正在使用Rails v3.2.6和Mongoid v2.4.10,但我想如果它是ActiveRecord就没有区别。
答案 0 :(得分:0)
像这样更改你的before_save定义
after_save do
validate_image
unless image_not_valid
publish
update_some_data
send_notifications
end
end
答案 1 :(得分:0)
使用ActiveRecord:
http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
如果before_ *回调返回false,则取消所有后续回调和相关操作。如果after_ *回调返回false,则取消所有后续回调
使用常规回调,一旦返回false
,只会停止before_ *回调