我的问题是,当我破坏一些载波模型时:
附件.rb
mount_uploader :attachment, AttachmentUploader
我将其从数据库中删除,并将其序列化到另一个带有修订的表中。
当用户将已删除的附件具体化时,我需要向后插入行,但跳过特定的载波回调(我猜跳过挂载更新器)。
下面的代码可以做到这一点,但不幸的是它从模型中删除了所有回调,我需要它们。所以我只能跳过 carrierwave 上传器,否则它在创建时会抛出"无效附件"的异常。
model.class.skip_callbacks do
model.save
end
可以吗?谢谢!
您可以使用使用 lambda 指定的 skip_callback 跳过特定的回调。将其与您尝试避免的特定回调相结合,您应该能够实现您正在寻找的控制。
class Attachment
mount_uploader :attachment, AttachmentUploader
skip_callback :save, :after, :store_attachment!, if: :skip_storage?
private
def skip_storage?
# some skipping logic
end
end