将指纹添加到旧回形针附件

时间:2014-04-22 11:07:46

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

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

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

这是我从旧附件的重新处理中得到的错误:

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

2 个答案:

答案 0 :(得分: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

这样的事情对你有用吗?

答案 1 :(得分:0)

手动尝试并多次检查错误后,我发现问题不在于附件没有指纹。问题是指纹是零。由于某种原因,paperclip不处理这种情况。

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

解决了它!