2017-03-17 68 views
0

我正在rails中開發一個示例應用程序。現在,我想查布爾變量hasUser的值,如果這是真的,那麼只有我需要通過用戶的詳細情況的用戶,否則,只需要通過唯一的成功形象,JSON在rails中呈現json時添加檢查

我的代碼如下

給出
hasUser = false 
render json: { 
    status: 'success', 
    user: @user 
} 

我不想爲兩個條件寫兩個呈現json,而是可以添加檢查,以便它在兩種情況下都能正常工作。

更新

我已經改成了

render json: { 
    status: 'success', 
    user: (hasUser ? @user: nil) 
} 

如果該值是hasUser假它產生與用戶具有空值的響應。我需要從響應中刪除用戶部分。

回答

1

的Gemfile

gem 'jbuilder', '~> 2.0' 

創建文件名

filename.json.jbuilder

json.status "success" 
if @hasUser 
    json.user @user 
end 

OR

hasUser = false 
data = { 
    status: 'success', 
    user: @user 
} 
data.delete(:user) unless hasUser 

render json: data 
+0

我需要從如果hasUser響應刪除用戶領域值爲假 – CR7

+0

我必須創建一個額外的文件嗎? – CR7

+0

是的,你必須創建擴展名爲fie json.jbuilder – puneet18