我有一个名为“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?
感谢。
答案 0 :(得分:1)
使用carrierwave,您应该使用属性的问题方法pic?
,或者使用blank?
/ present?
:
@profile.pic.present?
# => false
@profile.pic?
# => false
@profile.pic.blank?
# => true