0

用户 has_many items Item belongs_to Client

使用 mongoid(我不认为它是特定于 mongoid 的,但无论如何)我需要通过给定用户收集所有客户端。目前我使用:

@clients = current_user.items.map{|c| c.client}

但可以肯定的是,它不好,也不可接受。最好的实施方式是什么?

4

1 回答 1

2

为了不遇到 N+1 问题,我会做这样的事情。

# first you retrieve all client ids
ids = current_user.items.map(&:client_id)

# then you retrieve all clients at once
@clients = Client.in(id: ids)
于 2012-08-23T21:13:08.873 回答