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

Zep*_*434 2 ruby-on-rails

我正在一个网站上工作,我希望能够显示用户个人资料的默认图像,如果他们还没有上传自己的图像.

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

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

Cad*_*ade 6

paperclip gem支持一个default_url选项,该选项是在用户没有图像时将呈现的图像的路径.从回形针自述文件:

class User < ActiveRecord::Base
  attr_accessible :avatar
  has_attached_file :avatar, :styles => { :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
end
Run Code Online (Sandbox Code Playgroud)

因此,如果你打电话user.avatar.url(:thumb)并且它丢失了,回形针会尝试渲染/images/thumb/missing.png.如果您创建默认的缺失图像并将其与default_url参数对齐,您应该能够让回形针处理其余部分.