单个模型上的多个 Carrierwave mount_uploader
Posted
技术标签:
【中文标题】单个模型上的多个 Carrierwave mount_uploader【英文标题】:Multiple Carrierwave mount_uploader on a single model 【发布时间】:2012-05-22 14:44:58 【问题描述】:我有一个名为 Recipe 的模型,它有 2 个使用载波的图像,所以在这个模型中我有这个来设置载波
mount_uploader :author_photo, AuthorUploader
mount_uploader :photo, PhotoUploader
我还为我的图片添加了多个版本,例如拇指、小、中、大
问题是。假设我有 2 张图片
Chocolate_Cake.jpg as the photo
My_Photo.jpg as author_photo
当我进入控制台并加载我的食谱并加载到 recipe.to_json 时,我从carrierwave 中获取了我的两张图片,但它们都显示了食谱的照片,而不是作者的照片。
"recipe": [
"author_photo":
"url": "/uploads/recipe/photo/8/Chocolate_Cake.jpg",
"thumb":
"url": "/uploads/recipe/photo/8/thumb_Chocolate_Cake.jpg"
,
"small":
"url": "/uploads/recipe/photo/8/small_Chocolate_Cake.jpg"
,
"medium":
"url": "/uploads/recipe/photo/8/medium_Chocolate_Cake.jpg"
,
"large":
"url": "/uploads/recipe/photo/8/large_Chocolate_Cake.jpg"
,
"id": 8,
"photo":
"url": "/uploads/recipe/photo/8/Chocolate_Cake.jpg",
"thumb":
"url": "/uploads/recipe/photo/8/thumb_Chocolate_Cake.jpg"
,
"small":
"url": "/uploads/recipe/photo/8/small_Chocolate_Cake.jpg"
,
"medium":
"url": "/uploads/recipe/photo/8/medium_Chocolate_Cake.jpg"
,
"large":
"url": "/uploads/recipe/photo/8/large_Chocolate_Cake.jpg"
,
所以由于某种原因,我的 json 响应没有正确显示我的上传者。
如果我要在控制台中输入这个,
recipe.photo
recipe.author_photo
他们想出了不同的图片网址
【问题讨论】:
【参考方案1】:经过一些研究和朋友的帮助,我发现我可以覆盖配方模型的 as_json 方法来修复我得到的响应。
def as_json(options = )
super.merge('photo' => photo.as_json[:photo], 'author_photo' => author_photo.as_json[:author_photo])
end
这个解决方案奏效了。
【讨论】:
这对我也有用,但你找到原因了吗?感觉像是 CarrierWave 或使用中的错误。 嘿,格里,不确定,但对我来说,它似乎使用了您设置的最后一个上传器,听起来确实是一个可能的错误/用法。以上是关于单个模型上的多个 Carrierwave mount_uploader的主要内容,如果未能解决你的问题,请参考以下文章
在 ActiveAdmin 中使用 CarrierWave 多个图像
未定义的方法“image_will_change!”用于 Heroku 上的 CarrierWave