2015-11-11 18 views
0

我有一個有條件呈現部分的jbuilder模板。如何確保一個對象始終存在,即使是空的

json.current_user do 
    # ... 
    json.avatar_urls do 
    json.partial! 'api/users/avatar_urls', avatar: user.avatar if user.avatar 
    end 
end 

當存在化身,所得到的JSON樣子(簡化):

"current_user": { 
    "avatar_urls": { 
    "original": "http://example.com/avatars/example.jpg", 
    } 
} 

但是,當不存在化身,所得到的JSON沒有 「avatar_urls」 對象在所有:

"current_user": { 
} 

我想它總是有這樣的對象,但我希望它是一個空 對象:

"current_user": { 
    "avatar_urls": { 
    } 
} 

我該如何做到這一點?

回答

0

因爲頭像只有當它不是nil時纔會返回,所以您可以假設如果頭像爲零,則返回頭像的默認對象。 例如,添加某處方法:

def avatar_for(user) 
    return user.avatar if user.avatar.present? 
    default_avatar 
end 

其中default_avatar是當調用將被呈現的對象

json.partial! 'api/users/avatar_urls', avatar: avatar_for(user) 
相關問題