2011-12-31 37 views
3

我目前正在尝试将用户从我的应用程序的版本1移至版本2。版本2是一个完整的重写。Rails Carrierwave if(:medium).present?

如果存在,我只想显示:medium版本。如果它不存在,我想显示:small

我该怎么做呢?

+0

这是一个非常具体的请求,所以你可能想要在CarrierWave谷歌组:http://groups.google.com/group/carrierwave询问:说实话,我不知道你怎么会这样做,没有请求文件路径和chec王是'HEAD'响应标题。 – iwasrobbed 2012-01-01 15:47:55

回答

0

这是一个很老的问题,但这里是我会做什么

,因为我真的很喜欢布店,我将创建一个相关的装饰方法,但它也可以仅仅是一个典型的辅助方法,如

def avatar_for(user) 
    avatar = user.avatar 
    avatar.medium.url || avatar.small.url 
end 
+1

nope。 avatar.medium.url返回存在的URL,即使它不存在也会返回。需要对存在进行实际测试(请参阅我的答案) – jpwynn 2013-12-16 03:44:54

4

avatar.medium.file.exists?是您正在查找的测试。

0

我得到这个通过测试的大小不等于零

if avatar.medium.size == 0 
0

正确答案的工作是:

if asset.file.medium.file.exists? 
    #show medium version 
else 
    #show small version 
end 

其中file = mounted_uploader和资产=模型