Rails:根据条件生成Json响应

Rails: Generate Json response based on condition

如何在 json.jbuilder 文件中生成基于条件的 JSON 响应。 例如:

json.posts @posts do |post|
    post.id post.id
    post.users.each do |user|
        if user.status == true
           json.name user.name
           json.age user.age
        else
           json.name user.supervisor_name
           json.age user.supervisor_age
        end
    end
end

问题是,如果 user.status == false 它不执行 else 部分。 有人可以帮忙吗?

我想要这样的回复:

{
  "posts": [
    {
      "id": "1",
      {
        "name": "Jhon",
        "age": "24"
      },
      {
        "name": "Wick",
        "age": "25"
      }
    },
    {
      "id": "2",
      {
        "name": "Tom",
        "age": "32"
      },
      {
        "name": "Cruis",
        "age": "31"
      }
    }
  ]
}

你应该这样做

json.posts @posts do |post|
  json.id post.id
  json.users post.users do |user|
    if user.status == true
      json.name user.name
      json.age user.age
    else
      json.name user.supervisor_name
      json.age user.supervisor_age
    end
  end
end