3

我有 2 个模型 - Album 和 AlbumImage。

每个专辑都有与之关联的专辑图像,并且它们通过使用 Carrierwave 的 AlbumImageUploader 类上传。

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

问题是这次我没有使用表单来上传新的图像文件,而是使用文件系统中的现有专辑图像,并且我不知道如何将此图像从我的 AlbumImageUploader 类传输到我的 AlbumCoverUploader 类。

有任何想法吗?

4

1 回答 1

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 的输入,以创建自己的图像副本。

于 2012-09-11T19:09:29.090 回答