2

コントローラからのjson出力をレンダリングする必要があり、画像のサムネイルバージョンをjsonに含めたいと思います。

それだけを使用してjsonをレンダリングする:image_urlと、完全な画像URLが出力されます。使用:imageすると、使用可能なすべての画像(サムネイルを含む)が一覧表示されます。

画像のサムネイルバージョンだけをjsonでレンダリングするにはどうすればよいですか?

ありがとう、

4

2 に答える 2

5

このようなものを使用する必要があります。

class ArtworkSerializer < ActiveModel::Serializer
    attributes :id, :name, :image_url

    def image_url
      object.image_url(:thumbnail)
    end
  end

次に、JSON応答に、属性があります:image_url

注: carrierwaveアップローダーにバージョンが定義されている必要があります:thumbnail。

于 2013-03-27T07:58:55.027 に答える
2

次のようなシリアライザーを使用することをお勧めします。

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
于 2014-06-06T11:24:49.997 に答える