4

我知道你可以为回形针添加新样式,然后使用过程!强制回形针填充缺失样式的方法。但是,如果您想放弃不再使用的旧样式怎么办。

例如,我有 iphone 和 ipad 的样式,但我改变了主意,而是想要尺寸略有不同的 :large 和 :medium ,而不是 :iphone 和 :ipad。

特别是我在 s3 上托管我的图像,因为我的应用程序在 heroku 上。我想删除 s3 上与 :iphone 和 :ipad 样式有关的所有文件夹。是否有删除选择样式的 rake 任务?

4

4 回答 4

2

在您的终端中运行

rake -T paperclip

你可以看到这样

...
rake paperclip:clean                    # Cleans out invalid attachments.
rake paperclip:refresh                  # Refreshes both metadata and thumbnails.
rake paperclip:refresh:metadata         # Regenerates content_type/size metadata for a given CLASS (and optional ATTACHMENT).
rake paperclip:refresh:missing_styles   # Regenerates missing thumbnail styles for all classes using Paperclip.
rake paperclip:refresh:thumbnails       # Regenerates thumbnails for a given CLASS (and optional ATTACHMENT and STYLES splitted by comma).
...

刷新缩略图试试这个

rake paperclip:refresh:thumbnails class= Xyz # xyz replace with your class name

用于去除

rake paperclip:clean                    # Cleans out invalid attachments.
于 2012-10-03T09:40:10.307 回答
2

如果您指的是删除无效文件,请尝试:

rake paperclip:clean  # Cleans out invalid attachments.

您可以通过键入以下命令在控制台中查看所有回形针任务:

rake -T paperclip
于 2012-10-03T07:22:05.843 回答
1

您可以使用该Attachment#clear方法。

如果你想删除thumbanddisplay样式,你可以运行类似:

YourModel.find_each do |ym|
  ym.attachment.clear(:display, :thumb)
  ym.save!
end
于 2017-10-02T23:23:33.217 回答
0

您将不得不编写一个脚本来完成此操作,但回形针确实有一个s3_object方便的方法可以让这变得简单:

obj = User.first.avatar.s3_object(:unwanted_style)
obj.delete if obj.exists?

您可以将这样的东西放在一个循环中,用于您想要操作的任何对象。

资料来源:

于 2016-10-06T23:58:02.690 回答