我在游戏和服务器之间有一个has_many :through
连接表,称为games_servers
,我正在尝试为game
的servers
发送一个id
数组,如下所示:
json.servers do
json.array!(game.servers {|g| g.id})
end
但它发送的是整个server
记录,而不仅仅是id
。我也尝试了以下方法:
json.servers do
json.array!(game.servers {|g| json.(g, :id)})
end
但即便如此,也使整个server
记录。有没有办法让我只发送数组中server
记录的id
?
我可以做json.array!(game.servers.pluck(:server_id))
只获取数组中的id
,但这会导致N+1
查询问题
您可以尝试关注以获取ids
server
game.server_ids
这将是获取关联模型 ID 的最短代码。
希望这对你有用..