0

ユーザー has_many のアイテム アイテムの所属_クライアント

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 に答える