在我的应用程序中,我可以选择让用户通过回形针上传个人资料图片的图像。
我希望在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 %>
关于我的问题可能是什么想法?
由于
答案 0 :(得分:0)
在您的用户模型中有这样的内容:
has_attached_file :photo,
:default_url => '/images/guest.jpeg',
:styles => {
:large => "300x300>",
:thumb => "100x100>",
:tiny => "32x32>"
}
如果模型没有附加文件,则使用:default_url选项。如果用户没有任何上传的照片,您可以使用此选项设置要显示的默认照片。
在视图中:
<%= image_tag @user.photo.url(:thumb) %>
答案 1 :(得分:0)
由于这是视图逻辑,我会把它放在帮助器而不是模型中。所以在一个相关的帮手:
def user_photo(user)
user.photo.url.present? ? image_tag user.user_photo : image_tag 'guest.png'
end
然后从视图中调用该帮助程序。当然,您可以为image_tag添加其他参数以获取尺寸等。通过这种方式,您可以始终如一地使用image_tag助手。