如何在创建对象后在JSON中包含嵌套关联?

问题描述 投票:2回答:1

一个小队有很多玩家。如果我尝试创建一个新的小队,可以,但不会在控制台中返回包含播放器的JSON。

这是我在控制器上用于创建def的代码:

def create
  squad = Squad.create(squad_params)
  render json: squad
end

这是我在模型处的序列化器:

def serializable_hash(opts)
  super(opts.merge(only: [:id, :name, :user_id], include: :players))
end

这是我在控制台返回的json:

{id: 26, name: "gol", user_id: 1, players: Array(0)}
id: 26
name: "gol"
players: []
user_id: 1
__proto__: Object

如您所见,玩家数组为空。实际上它不是空的,但在控制台上似乎是空的。

我用include(:players)尝试过类似的操作,但是没有用:

def create
  squad = Squad.create(squad_params)
  render json: squad.include(:players)
end

您知道如何在创建方法中渲染小队json包含的播放器吗?

ruby-on-rails json ruby serialization rendering
1个回答
0
投票

在Rails响应中包括关系的语法是

render json: squad, include: :players

并在创建小队时让其具有球员

© www.soinside.com 2019 - 2024. All rights reserved.