2

ユーザーのプロフィール写真を保存するために Paperclip を使用しています。特定のファイルタイプのみを許可するなど、かなり厳密にしようとしています。それでも、ユーザーが何かを誤って処理することはよくあることです。

私の index.html.erb ファイルでは、すべてのユーザー プロファイルを一覧表示していますが、このリストが実稼働環境でアプリケーション エラーをスローするのはよくあることです。ページ全体が失敗します。

現在、私はこのような画像を見つけました

<% @members.each do |member| %>
  <tr>
<td><%= image_tag member.avatar.url(:thumb) %></td>
</tr>
<% end %>

何らかの理由で画像が失敗した場合にページが失敗することを許可せず、PaperClip ドキュメント (別名デフォルト画像) で指定されているように、代替画像を表示するコードでこれをラップするにはどうすればよいですか。

4

2 に答える 2

4

条件をチェックするメソッドをモデルに記述し、View からメソッドを呼び出すことをお勧めします。

Model: 

def image_url(image_size)
  avatar_image = member.avatar
  if avatar_image.present? && avatar_image.url(image_size).present?
    return avatar_image.url(image_size)
  else
    return "/images/default_image.jpg"
  end
end

View:
<%= image_tag member.image_url(:thumb) %>
于 2013-03-28T12:46:56.133 に答える
2

これを試して。

あなたのモデルでは:

has_attached_file :image, :default_url => "/images/no-image.jpg"
于 2013-03-28T12:49:31.217 に答える