2

我的问题是,当我销毁一些载波模型时:

附件.rb

mount_uploader :attachment, AttachmentUploader

我将其从数据库中删除并将其序列化到另一个带有修订的表中。

当用户重新确认已删除的附件时,我需要将行插入回来但跳过特定的载波回调(我猜跳过安装上传器)。

下面的代码可以做到这一点,但不幸的是它从模型中删除了所有回调,我需要它们。所以我必须只跳过载波上传器,否则在创建时会抛出“无效附件”异常。

  model.class.skip_callbacks do 
    model.save
  end

有可能吗?谢谢!

4

1 回答 1

3

您可以使用用 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
于 2013-02-04T15:21:47.063 回答