2012-10-03 30 views
3

我知道您可以将新样式添加到回形针,然后使用过程!方法强制回形针填写缺少的样式。但是如果你想抛弃那些你不再使用的旧款式呢。如何删除回形针中的现有样式尺寸

例如,我有iphone和ipad的样式,我改变了主意,反而喜欢:large和:medium与略有不同的尺寸,而不是:iphone和:ipad。

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

+0

那岂不是更容易只是使用S3 GUI工具? – varatis

+0

无法用回形针做到这一点,只能重新生成/刷新新的或现有的样式。你应该能够脚本使用aws-s3的宝石http://amazon.rubyforge.org – iouri

+0

我会一整天用gui工具。有300个帖子与图像。我希望像post.image(:ipad).delete这样会反过来从s3中删除文件的方法。 – Homan

回答

2

如果你指的是去除无效的文件,请尝试:

rake paperclip:clean # Cleans out invalid attachments. 

可以通过键入查看控制台所有回形针任务:

rake -T paperclip 
+2

'clean'任务还需要指定一个类。 –

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. 
+0

“干净”任务还需要指定一个类。 –

+0

是否可以执行此功能的单个上传和直接从应用程序?谢谢! – Gediminas

0

你将不得不编写一个脚本来做到这一点,但回形针确实有s3_object方便的方法,使这个简单的:

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

你可以在循环内放置类似的东西用于任何想要操作的对象。

来源:

0

可以使用Attachment#clear方法。

如果你想删除thumbdisplay风格,你可以运行类似:

YourModel.find_each do |ym| 
    ym.attachment.clear(:display, :thumb) 
    ym.save! 
end