如何在将Paperclip图像添加到数据库后调整其大小?

18

我已经将2000张图片添加到我的图像表中,并使用Paperclip插件创建缩略图。我想知道是否有一种方法可以遍历数据库并添加另一个:styles元素。

例如,当我添加图像时,在我的模型中有以下内容:

has_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" }

然而,现在我想添加一个:large属性,并将其应用于表格中已有的每个图像。类似于:

has_attached_file :image, :styles => { :large => "800x800>", :medium => "300x300>", :thumb => "100x100>" }

这种情况是否可行?或者我必须重新添加所有2000张图片吗?

2个回答

42
如果安装了 Paperclip 插件,你可以这样做:
rake paperclip:refresh:thumbnails CLASS=Screenshot

其中Screenshot是带有附件的类的名称。

如果它以gem形式安装,在script/console中执行以下操作:

Screenshot.all.each {|s| s.image.reprocess! }

将Screenshot替换为相应的类名


第二种方法非常有帮助,我用第一种方法失败了,出现了未定义方法异常。 - albb
2
如果你有大量的截图,你应该使用 #find_each。Screenshot.find_each {|s| s.image.reprocess! } - Schneems
第二种方法在使用 Paperclip 作为插件的 rails console 上运行得非常好。谢谢! - Andrew Anderson

6
rake paperclip:refresh:thumbnails

2
更具体地说:rake paperclip:refresh:thumbnails CLASS=MyClass - pixelearth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接