1

Rails 4 アプリケーションにユーザーのアバターを保存するために cloudinary を使用しています。画像アセットにプレースホルダー画像もあります。ユーザーが自分のアバターをアップロードしていない場合、ローカルホストからどのようにロードすればよいか知りたかったのです。

今のところ、チェックを追加する必要があります

- if user.avatar.present?
  = cl_image_tag(user.avatar.filename, width: 46, height: 46)
- else
  = image_tag 'default.png', style: 'width:46px; height:46px;'

デフォルトの画像を次のように指定できます

= cl_image_tag(user.avatar.filename, width: 46, height: 46, default: 'default.png')

ただし、デフォルトのイメージは cloudinary に保存する必要があります。cloudinary はデータ転送に課金されるため、cloudinary に保存したくありません。したがって、「default.png」はアセットに保存されています。「cl_image_tag」は、そこから画像をロードするために cloudinary によって提供されるヘルパーです。

4

1 に答える 1

3

以下のように問題を解決しました

まず、デフォルトの画像を cloudinaryに保存する必要があります。例えば

<%= cl_image_tag("non_existing_id.png", width: 100, height: 100, default_image: "avatar.png") %>

cloudinary からではなくローカルホストからデフォルトのイメージをロードしたくない場合は、以下のコードをパーシャルに追加して、このパーシャルを使用します。

- if user.avatar.present?
  = cl_image_tag(user.avatar.filename, width: 46, height: 46)
- else
  = image_tag 'noPic_80.png', style: 'width:46px; height:46px;'
于 2014-02-18T04:50:23.390 に答える