首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何询问@user.photo是否存在?创建自(类PhotoUploader <媒体波::上载器)

如何询问@user.photo是否存在?创建自(类PhotoUploader <媒体波::上载器)
EN

Stack Overflow用户
提问于 2016-10-02 20:29:20
回答 1查看 74关注 0票数 1

我的User模型使用载波创建作为@user.photo.thumb访问的图像。这不是照片模型,photoUser中的string column。但是,有些用户不会上传photo,所以我想要创建一个if/else语句来告诉我他们是否上传了一张照片。

<% if @user.photo %>返回,尽管用户还没有上传照片。

<%如果@user.photo.nil?%>返回false,但是在Heroku控制台中,它将column photo显示为usernil

U= User.find(5) =>用户id: 5,名称:"SpongeBob ",.,图片: nil>

代码语言:javascript
复制
class User < ActiveRecord::Base
    mount_uploader :photo, PhotoUploader
end

class PhotoUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
  version :thumb do
    process resize_to_fill: [150,150]
  end

  if Rails.env.production?
    storage :fog
  else
    storage :file
  end

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
end

这是作为化身使用的。我想要一个默认的头像,如果他们没有上传自己的照片。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-02 20:37:11

如果您查看自述文件,就可以像这样覆盖上传器中的default_url。因此,如果没有图片,它将显示默认。

代码语言:javascript
复制
class PhotoUploader < CarrierWave::Uploader::Base
  def default_url(*args)
    ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
  end
end

这是如果在模型中使用资产对线的话。

如果要查看该文件是否存在,则需要执行以下操作:

代码语言:javascript
复制
@user.photo.file.nil?

因为这将检查实际存在的文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39821384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档