运行脚本以使用imagemagick从现有图像生成新的图像大小

时间:2013-08-09 15:09:20

标签: ruby-on-rails imagemagick carrierwave

我在我的Rails应用程序中使用CarrierWave和ImageMagick。我想运行一个脚本来生成所有现有图像的新图像版本。最好的方法是什么?我之前没有为我的Rails应用程序编写脚本。

我在uploader.rb文件中创建了一个版本:

  version :square_thumb do
    process :resize_to_fill => [105, 105]
  end

在我的rails控制台中,我尝试创建新版本,执行以下操作:

Image.all.each do |image|
    image.recreate_version!(:square_thumb)
end

但我收到错误: NoMethodError:未定义的方法`recreate_version!'对于ImagePathUploader:0x007fe7f62ba4e0

有没有人有关于如何做到这一点的建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,我在image_path_uploader.rb文件中创建了一个方法:

   def add_square_thumb
    recreate_versions!(:square_thumb)
   end

从控制台,我可以做

Image.all.each do |image|
    image.image_path.add_square_thumb
end