Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Carrierwave,MongoMapper对未上载的用户不返回任何内容_Ruby On Rails_Ruby_Ruby On Rails 3_Carrierwave - Fatal编程技术网

Ruby on rails Carrierwave,MongoMapper对未上载的用户不返回任何内容

Ruby on rails Carrierwave,MongoMapper对未上载的用户不返回任何内容,ruby-on-rails,ruby,ruby-on-rails-3,carrierwave,Ruby On Rails,Ruby,Ruby On Rails 3,Carrierwave,我们有一个实现carrierwave的用户模型,用于上传头像 对于上传了照片的用户来说,一切都很好。但对于那些不这样做的人,当你调用#photo方法时,你什么也得不到。不是nil,也不是空白字符串,绝对没有,因此我们无法索引或执行许多操作。似乎它应该返回零 你有没有想过如何做到这一点 我正在使用 类用户 挂载上传器:照片,照片上传器 ... 结束 类PhotoUploader[200200] 版本:正常 处理:将_调整为_填充=>[100100] 结束 版本:thumb do 处理:将_调整为_

我们有一个实现carrierwave的用户模型,用于上传头像

对于上传了照片的用户来说,一切都很好。但对于那些不这样做的人,当你调用#photo方法时,你什么也得不到。不是nil,也不是空白字符串,绝对没有,因此我们无法索引或执行许多操作。似乎它应该返回零

你有没有想过如何做到这一点

我正在使用

类用户
挂载上传器:照片,照片上传器
...
结束
类PhotoUploader[200200]
版本:正常
处理:将_调整为_填充=>[100100]
结束
版本:thumb do
处理:将_调整为_填充=>[50,50]
结束
def存储目录
“#{model.class.to_s.下划线}/#{mounted_as}/#{model.id}”
结束
结束
irb(主):024:0>User.brandon.photo
=> 
irb(主):025:0>User.brandon.photo.class
=>照片上传器
irb(主):026:0>User.chris.photo
=>https://[redact]/IMG_1160_2_biger.jpg
irb(主):027:0>User.chris.photo.class
=>照片上传器
根据,您可以使用
空白?

User.brandon.photo.blank? # should be true
User.chris.photo.blank? # should be false

只需在你的上传器中实现默认的url,并将其作为默认的化身上传给提供商

def default_url
  "/assets/avatars/{version_name}_default.png"
end
然后按如下方式显示您的图像

image_tag User.brandon.photo_url(:normal)

你不能一无所获。通过尝试
User.brandon.photo.class
,找出实际返回的内容。这包括:irb(main):025:0>User.brandon.photo.class=>PhotoUploader类似于to_在PhotoUploader类上没有生成任何内容……我知道这就是测试它是否有效的方法,但这不是我想要做的。问题是,使用像awesome_print这样的工具,如果你这样做:ap User.brandon,它将遍历所有属性,#photo就是其中之一。我知道如何使用代码中的照片url来显示照片。同样,当elasticsearch转到index时,它会尝试为用户的.photo属性编制索引,但实际上并没有查找photo\u url。
image_tag User.brandon.photo_url(:normal)