2017-02-14 3 views
1

Ich habe ein News Modell mit dem Carrierwave AttachmentUploader montiert.Schienen hinzufügen Felder zu Carrierwave gem

Die json Ausgabe sieht wie folgt aus:

{ 
    "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" 
} 

I thumbnail Feld Carrierwave hinzufügen möchten die aktuelle Ausgabe zu erhalten:

{ 
    "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" 
} 

Hier ist mein 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 

Wie mache ich das?

+0

Fügen Sie kein zusätzliches Feld, das Sie es mit aktivem Datensatz Serializer erreichen können. Kannst du dein komplettes json aktualisieren? –

+0

@DipakG. habe gerade den Code aktualisiert. Ich muss die Thumbnail-URL speichern, die mir vom Kunden geschickt wird. Wie erreiche ich es mit dem Serializer? –

Antwort

0

Ok, ich habe es geschafft, indem ich ffmpeg auf meinem Mac und installiert habe.

Und fügten hinzu thumb meinen NewsSerializer

def attachments 
    a=[] 
    object.attachments.each do |att| 
     a << {url: att.url, content_type: att.content_type, thumb: att.thumb} 
    end 
    a 
end 
Verwandte Themen