如果用户照片不存在,然后显示通用图像
问题描述:
在我的应用程序中,我可以选择让用户通过回形针上传个人资料图片的图像。如果用户照片不存在,然后显示通用图像
希望我想在index.html.erb页面中做的是显示所有用户的显示图片,如果他们没有上传一个,那么它应该显示一个默认图片。
现在我已经尝试编码它,但目前有图片的用户有显示,但没有得到什么。
我在我的用户模型下面的代码:
def user_photo
(photo.url.present?) ? photo.url : '/images/guest.png'
end
,并在我的index.html.erb
<% for user in @users %>
.............
<%= image_tag user.user_photo, :height => 50, :width => 50 %>
..............
<% end %>
什么我的问题可能是任何想法下面的代码?
感谢
答
有这样的事情在你的用户模型:
has_attached_file :photo,
:default_url => '/images/guest.jpeg',
:styles => {
:large => "300x300>",
:thumb => "100x100>",
:tiny => "32x32>"
}
的:如果有一个模型没有附加文件DEFAULT_URL选项使用。如果用户没有任何上传的照片,则可以使用此选项设置要显示的默认照片。
在视图:
<%= image_tag @user.photo.url(:thumb) %>
答
由于这是观点的逻辑,我把它放在一个帮手,而不是在模型中。因此,在相关帮手中:
def user_photo(user)
user.photo.url.present? ? image_tag user.user_photo : image_tag 'guest.png'
end
然后从视图中调用该助手。当然,您可以将其他参数添加到image_tag的尺寸等。通过这种方式,您可以始终如一地使用image_tag助手。
什么是生成的HTML就像客人的情况? 'img src'说什么?如果您将浏览器指向该URL,会发生什么情况?您是否尝试过手动访问'guest.png'? – Amadan 2012-02-29 15:29:49