【发布时间】:2012-02-22 08:34:27
【问题描述】:
假设我的模型有一个带有:thumb 的图像,而客户想要:tiny 和:nano 缩略图。
如何使用 rake 任务重新处理所有现有图像?
我发现了一个我认为可以完成的 rake 任务https://gist.github.com/777788,但它给了我错误。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1 rake carrierwave
假设我的模型有一个带有:thumb 的图像,而客户想要:tiny 和:nano 缩略图。
如何使用 rake 任务重新处理所有现有图像?
我发现了一个我认为可以完成的 rake 任务https://gist.github.com/777788,但它给了我错误。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1 rake carrierwave
我想通过Mikhail Nikalyukin扩展这个很棒的答案
要重新处理单个版本,您可以执行以下操作
Model.all.each do |model|
model.image.recreate_versions!(:version1, :version2)
end
这样,如果你添加了一个新版本,你就不必再做所有这些了
【讨论】:
根据 Carrerwave 文档,您可以使用以下命令:
Model.all.each do |model|
model.image.recreate_versions!
end
【讨论】:
Model.last(100).each { |m| m.image.recreate_versions! }
model.save(这也是由@etagwerker指向的代码完成的)。
model.image.recreate_versions! if model.image?,因为在我的案例中并非所有对象都上传了图像。