载波上传的图像不应该存在但是在轨道中

时间:2014-06-19 16:19:30

标签: ruby-on-rails model-view-controller ruby-on-rails-4 carrierwave jquery-file-upload

我有一个名为“Profile”的模型,其中一个属性称为“pic”。在控制台中,当我这样做时:

User.first.profile

返回以下内容。

 => #<Profile id: 64, created_at: "2014-06-19 15:59:41", 
      updated_at: "2014-06-19 15:59:41", user_id: 24, 
      description: "fds aslkjd aslkfjhas dlkjashdf lajkdshf al...", 
      rate: nil, pic: nil >

如您所见,“pic”属性为零,因为我从未上传过图片。我试图写几个“if语句”来区分图片是否存在。例如:

 @profile = User.find(24).profile.first
if @profile.pic

我也试过了:

@profile = User.find(24).profile.first
if @profile.pic.exists?

所有这些都评估为真,这不应该发生,因为图片从未上传过。

我也试过了:

@profile = User.find(24).profile.first
if @profile.pic.nil?

由于某种原因,评估为假。

当我在控制台中运行时:

=> #<PicUploader:0x007ff8abeb8560 @model=#<Profile id: 64, 
     created_at: "2014-06-19 15:59:41", updated_at: "2014-06-19 15:59:41", 
     user_id: 24, description: "fds aslkjd aslkfjhas dlkjashdf lajkdshf al...", 
     rate: nil, pic: nil>, @mounted_as=:pic> 

我不知道它来自哪里。我如何写一个“if语句”来判断图像是否存在,它实际上会像它应该那样返回false?

感谢。

1 个答案:

答案 0 :(得分:1)

使用carrierwave,您应该使用属性的问题方法pic?,或者使用blank? / present?

@profile.pic.present?
# => false
@profile.pic?
# => false
@profile.pic.blank?
# => true