我需要渲染一個json輸出從控制器,我想包括我的圖像在json中的縮略圖版本。Rails json輸出載波縮略圖版本
如果我只使用:image_url
渲染json,它會輸出完整的圖片url,如果我使用:image
那麼它會列出所有可用的圖片(包括縮略圖)。
如何在json中渲染出圖像的縮略圖版本?
謝謝,
我需要渲染一個json輸出從控制器,我想包括我的圖像在json中的縮略圖版本。Rails json輸出載波縮略圖版本
如果我只使用:image_url
渲染json,它會輸出完整的圖片url,如果我使用:image
那麼它會列出所有可用的圖片(包括縮略圖)。
如何在json中渲染出圖像的縮略圖版本?
謝謝,
你應該使用這樣的東西。
class ArtworkSerializer < ActiveModel::Serializer
attributes :id, :name, :image_url
def image_url
object.image_url(:thumbnail)
end
end
然後在您的JSON響應中,您將有一個屬性:image_url
。
注意:您應該有一個定義的版本:您的載波上傳器中的縮略圖。
我建議你使用串行這樣的:
class YourSerializer < ActiveModel::Serializer
attributes(
:id,
:image,
:small,
:medium,
:large
)
def small
url(width: 116, height: 116, crop: "fill")
end
def medium
url(width: 640, height: 400, crop: "fill")
end
def large
url(width: 1000, crop: "fill")
end
private
def url(options={})
options[:format] = "png"
options[:secure] = true
object.image_url(options)
end
end
,如果你去堅持使用縮略圖或已定義的版本只使用:
def url
object.image_url(:thumbnail)
end
Kulking您好,感謝您的回覆,我m使用activemodel_serializer來定製我的JSON輸出,當我使用image_url(:thumbnail)它不起作用。 (它在視圖中工作得很好) – 2013-03-27 08:04:57
class ArtworkSerializer
2013-03-27 08:05:28
@WilliamPramana,我相應地更新了我的問題。 – KULKING 2013-03-27 08:18:57