我们有一个用户模型,可以实现用于头像上传的载波。
对于已上传照片的用户,一切都很好。但对于那些不这样做的人,当你打电话给#photo方法时,你什么都没有。不是零,或空白字符串,绝对没有,所以我们不能索引或做很多事情因为这个。好像它应该返回nil。
有关如何实现这一目标的任何想法?
我正在使用http://github.com/brandonhilkert/carrierwave-mongomapper
class User
mount_uploader :photo, PhotoUploader
...
end
class PhotoUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :fog
process :resize_to_fit => [200, 200]
version :normal do
process :resize_to_fill => [100, 100]
end
version :thumb do
process :resize_to_fill => [50, 50]
end
def store_dir
"#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
irb(main):024:0> User.brandon.photo
=>
irb(main):025:0> User.brandon.photo.class
=> PhotoUploader
irb(main):026:0> User.chris.photo
=> https://[redacted]/IMG_1160_2_bigger.jpg
irb(main):027:0> User.chris.photo.class
=> PhotoUploader
答案 0 :(得分:0)
根据the documentation,您可以使用blank?
:
User.brandon.photo.blank? # should be true
User.chris.photo.blank? # should be false
答案 1 :(得分:0)
只需在您的上传器中将default_url实现为提供商的默认头像
即可def default_url
"/assets/avatars/{version_name}_default.png"
end
然后按如下方式显示图像
image_tag User.brandon.photo_url(:normal)