在rails

时间:2017-03-17 07:59:58

标签: ruby-on-rails json

我正在开发rails中的示例应用程序。现在,我想检查布尔变量hasUser的值,如果是真的,那么只需要将用户详细信息传递给用户,否则只需要将成功图像作为JSON传递

我的代码如下:

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

我不想为两个条件写两个渲染json,而是可以添加检查以便它在两个条件下都能正常工作。

更新

我已将其更改为

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

如果值hasUser为false,则会生成具有null值的用户的响应。我需要从响应中删除用户部分。

1 个答案:

答案 0 :(得分: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