【问题标题】:How to skip carrierwave uploader callbacks when unarchieving a serialized model?取消归档序列化模型时如何跳过载波上传器回调?
【发布时间】:2013-01-19 07:32:56
【问题描述】:

我的问题是,当我破坏一些载波模型时:

附件.rb

mount_uploader :attachment, AttachmentUploader

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

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

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

  model.class.skip_callbacks do 
    model.save
  end

有可能吗?谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby upload carrierwave


    【解决方案1】:

    您可以使用 skip_callback 跳过特定的回调,使用 lambda 指定。将其与特定的 callback you are trying to avoid 结合起来,您应该能够实现您正在寻找的控制。

    class Attachment
      mount_uploader :attachment, AttachmentUploader
    
      skip_callback :save, :after, :store_attachment!, if: :skip_storage?
    
      private
    
      def skip_storage?
        # some skipping logic
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-18
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 2013-09-05
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      相关资源
      最近更新 更多