0

我有一個Album,它使用Paperclip gem來存儲artwork圖像上傳。 artwork屬性具有不同圖像大小的樣式列表:大拇指,中等和大。通過回形針映射圖像樣式

class Album < ActiveRecord::Base 
    has_attached_file :artwork, styles: { thumb: "50x50#", medium: "160x160#", large: "300x300#" } 
    ... 
end 

在我的主動型串行我想創建一個基於陣列的images屬性存儲每個尺寸的URL。傳統上,我會做這樣的事情:

class AlbumSerializer < ActiveModel::Serializer 
    attributes :id, :name, :images 

    def images 
    [object.artwork.url(:thumb), object.artwork.url(:medium), object.artwork.url(:large)] 
    end 
end 

有沒有一種方法,我可以通過每個風格只是地圖,而不必寫入藝術品URL相同的調用的?我試圖得到樣式的哈希值,但得到它沒有返回任何東西:

album.artwork.styles 
=> {} 

任何想法讓這個工作?

回答

0

不知道的回形針部分(以下簡稱「風格陣」),但你可以這樣做:

def images 
    [:thumb, :medium, :large].map { |style| object.artwork.url(style) } 
end