我有一个载有Carrierwave AttachmentUploader的News
模型。
json输出如下所示:
{
"id": 158,
"title": "title1",
"description": "desc1",
"category": "ipsum",
"attachments": [
{
"url": "/uploads/news/attachments/158/Tesla_P100D_App_v3.0_Review.mp4",
"content_type": "application/mp4"
}
],
"created_at": "2017-02-14T08:34:14.119Z"
}
我想将thumbnail
字段添加到Carrierwave以获取当前输出:
{
"id": 158,
"title": "title1",
"description": "desc1",
"category": "ipsum",
"attachments": [
{
"url": "/uploads/news/attachments/158/Tesla_P100D_App_v3.0_Review.mp4",
"content_type": "application/mp4",
"thumbnail": {
"name": "Tesla_P100D_App_v3.0_Review",
"url": "/uploads/news/attachments/158/Tesla_P100D_App_v3.0_Review.png"
}
}
],
"created_at": "2017-02-14T08:34:14.119Z"
}
这是我的NewsSerializer
:
class NewsSerializer < ActiveModel::Serializer
attributes :id, :title, :description, :latitude, :longitude, :category, :tag_list, :avg_rating, :attachments, :created_at
def attachments
a=[]
object.attachments.each do |att|
a << {url: att.url, content_type: att.content_type}
end
a
end
end
我该怎么做?
答案 0 :(得分:0)
好的,我设法通过在我的Mac和ffmpeg
上安装gem 'carrierwave-video-thumbnailer'
来实现此目的。
并将thumb
添加到我的NewsSerializer
def attachments
a=[]
object.attachments.each do |att|
a << {url: att.url, content_type: att.content_type, thumb: att.thumb}
end
a
end