使用Carrierwave保存文件而不使用表单

时间:2011-02-28 06:46:12

标签: ruby-on-rails wave carrierwave

我有2个模型 - 专辑和专辑图像。

每张专辑都有与之相关的专辑图片,并使用Carrierwave通过AlbumImageUploader类上传。

现在,我想使用现有的相关相册图像为每个相册选择一个专辑封面。在将所选图像用作专辑封面之前,我需要处理(裁剪和调整大小)此选定图像。我有裁剪和调整大小功能,我创建了一个AlbumCoverUploader类来保存这个处理过的版本的专辑图像。

问题是这次我没有使用表单上传新的图像文件而是使用文件系统中的现有相册图像,我不知道如何将此图像从我的AlbumImageUploader类转移到我的AlbumCoverUploader类。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这很简单。 您必须以与从表单上传AlbumCoverUploader相同的方式配置它。

但是,要使用与现有记录关联的图像,您必须执行以下操作:

album = Album.find(id)                  # your existing album
album_image = album.album_images.first  # the image you want as cover
album.cover = File.open(album_image.image.current_path)
album.save

这将抓取图像文件并用作AlbumCoverUploader的输入来创建自己的图像副本。