Rails - 如果记录没有上传的图像,则显示默认图像

时间:2013-05-04 03:31:42

标签: ruby-on-rails

我正在一个网站上工作,如果他们尚未上传自己的图片,我希望能够显示用户个人资料的默认图片。

我可以将默认图像放在asset / images目录中,但是我想知道如何使用image_tag使逻辑工作,以便能够在视图中显示用户的图像,如果他们已经上传了一个或显示默认图像如果用户尚未上传,则占位符图像位于视图中。

我是rails的新手,但我猜我应该把逻辑放在我的用户模型中的某个地方并有条件地为用户设置图像属性?我也在使用Paperclip。

1 个答案:

答案 0 :(得分:6)

回形针gem支持default_url选项,该选项是在用户没有图像时将呈现的图像的路径。从回形针README:

class User < ActiveRecord::Base
  attr_accessible :avatar
  has_attached_file :avatar, :styles => { :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
end

因此,如果您拨打user.avatar.url(:thumb)并且它已丢失,则回形针将尝试呈现/images/thumb/missing.png。如果您创建默认的缺失图像并使用default_url参数对齐它们,您应该能够让回形针处理其余部分。