【问题标题】:Add fingerprint to old paperclip attachments将指纹添加到旧回形针附件
【发布时间】:2014-04-22 11:07:46
【问题描述】:

我在我的模型上使用回形针作为附件。我最近在附件中添加了指纹,它适用于新附件,但它没有添加到旧附件中,因此我无法重新处理附件以添加新样式,因为回形针试图找到带有指纹的附件,并非所有附件都有。

有没有办法将指纹添加到旧附件中?

这是我在重新处理旧附件时遇到的错误:

Errno::ENOENT: No such file or directory - /tmp/paperclip-reprocess20140422-1036-nl9gxk

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 paperclip attachment fingerprint


    【解决方案1】:

    [编辑] 你试过吗?

    $ rake paperclip:refresh class=Model_Name_Goes_Here
    

    [/编辑]

    如果您没有太多图像。最简单的方法,我能想到的是:

    Dir.foreach('/path/to/dir/that/contains/old/images') do |item|
      next if item == '.' or item == '..'
      file = File.join(File.expand_path(File.dirname(__FILE__)), item)
      thing.image = file
      thing.save
    end
    

    您可以使用 runner 运行此脚本:

    $ rails runner /path/to/script
    

    这样的事情对你有用吗?

    【讨论】:

    • 我有很多图片。回形针没有功能或类似的东西?
    • 他们确实有一个 rake 任务,我现在在carrierwave 上没有使用过。更新了我的答案。看看有没有帮助
    • 有趣。您可以通过 github 上的示例应用发布重现此问题的步骤吗?
    • 找到了解决方案。我会发布一个答案。
    • 很高兴你能弄明白。
    【解决方案2】:

    经过多次手动检查错误后,我发现问题不在于附件没有指纹。问题是指纹为零。由于某种原因,回形针无法处理这种情况。

    我通过数据库手动给每个对象一个空字符串作为指纹(这使我免于重命名磁盘上的文件),然后重新处理每个主题。

    解决了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-13
      • 2018-12-08
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      相关资源
      最近更新 更多