我正在使用Paperclip为用户存储个人资料照片。我试图通过仅允许某些文件类型等来严格控制。然而,用户设置错误操作是很常见的。
在我的index.html.erb文件中,我列出了所有用户配置文件,但是这个列表通常会在生产环境中抛出Application Error,如果其中一个图像损坏,找不到等等,整个过程就会失败,整个页面都失败了。
目前我找到了这样的图片
<% @members.each do |member| %>
<tr>
<td><%= image_tag member.avatar.url(:thumb) %></td>
</tr>
<% end %>
如果由于某种原因图像失败,我将如何将其包装在不允许页面失败的代码中,并显示替代图像,如PaperClip文档(也就是默认图像)中所指定的那样。
答案 0 :(得分: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) %>
答案 1 :(得分:2)
试试这个。
在你的模特中:
has_attached_file :image, :default_url => "/images/no-image.jpg"