2013-03-28 49 views
1

错误Rails中我使用回形针,用于存储用户的个人资料图片。我想是相当严格的,只允许特定的文件类型,等等。尽管如此,它是很常见的用户管理,以处理不当的东西。如何妥善处理“图像未找到”使用回形针

在我的index.html.erb文件中,我列出了所有的用户配置文件,但这个列表通常会在生产环境中抛出应用程序错误,如果其中一个图像被损坏,无法找到等,整个事情失败,整个页面失败。

目前我觉得像这样的

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

图像如何在代码把这个包,是不会允许页面失败,如果由于某种原因图像失败,并会显示替代图像,正如PaperClip文档(aka默认图像)中所指定的那样。

回答

3

我建议写在模型的方法来检查病情,并呼吁从视图的方法。

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) %> 
+0

我为了让它跌得越内嵌回形针的默认行为改变'高清图片网址(IMAGE_SIZE =无)'。 – Romuloux

1

试试这个。

在你的模型:

has_attached_file :image, :default_url => "/images/no-image.jpg"