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 回答