在我的Rails应用程序中,我有一个模块需要取多张图片,使用RMagick将它们"拼接"成一个新的单一图像。我能够成功地创建最终的图像,但我无法将这个新图像作为附件保存到模型中(使用CarrierWave)。执行拼接的方法如下:
def generate_collage(params)
final_image = ImageList.new
# ... code that puts together the composite image ...
return final_image.append(true).to_blob { |attrs| attrs.format = 'JPEG' }
end
我有一个带有上传器的用户模型:
class User < ActiveRecord::Base
mount_uploader :image, UserImageUploader
end
在CarrierWave文档的ActiveRecord部分中,他们展示如何分配一个新图像,但他们假定文件已经存在于某个地方。在我的情况下,它还不存在于文件系统中,我正在输出一个
blob
... 有没有办法从这个blob生成CarrierWave的图像上传呢?我想我试图避免将这个图像暂时保存到
"#{Rails.root}/tmp/"
中,然后从那里读取它...看起来我可以削减这一步并直接发送给CarrierWave,但我不知道怎么做!这可行吗?