コントローラからのjson出力をレンダリングする必要があり、画像のサムネイルバージョンをjsonに含めたいと思います。
それだけを使用してjsonをレンダリングする:image_url
と、完全な画像URLが出力されます。使用:image
すると、使用可能なすべての画像(サムネイルを含む)が一覧表示されます。
画像のサムネイルバージョンだけをjsonでレンダリングするにはどうすればよいですか?
ありがとう、
コントローラからのjson出力をレンダリングする必要があり、画像のサムネイルバージョンをjsonに含めたいと思います。
それだけを使用してjsonをレンダリングする:image_url
と、完全な画像URLが出力されます。使用:image
すると、使用可能なすべての画像(サムネイルを含む)が一覧表示されます。
画像のサムネイルバージョンだけをjsonでレンダリングするにはどうすればよいですか?
ありがとう、
このようなものを使用する必要があります。
class ArtworkSerializer < ActiveModel::Serializer
attributes :id, :name, :image_url
def image_url
object.image_url(:thumbnail)
end
end
次に、JSON応答に、属性があります:image_url
。
注: carrierwaveアップローダーにバージョンが定義されている必要があります:thumbnail。
次のようなシリアライザーを使用することをお勧めします。
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