0

acts_as_apiシステム内のいくつかのモデルに JSON 応答を提供するために使用しています。私のAPI関連のコードは次のとおりです(例を簡単にするために縮小されています):

# File app/modes/item.rb

# API
acts_as_api

api_accessible :v1_list do |template|
  template.add :id
  template.add :client_name
end

この API は期待どおりに機能しています。client_nameが以下を含むメソッドであることを知っておくことが重要です。

def client_name
    client.name
end

つまり、クライアント名はアイテム モデルではなく、クライアント モデルに含まれます。したがって、この情報は items テーブルには含まれていません。

Bullet gem を使用して、クライアント テーブルで N+1 クエリが実行されていることに気付きました。項目ごとに、clients テーブルへの SQL クエリも実行されます。

ActiveRecord の API には、N+1 クエリを回避するユーティリティがいくつかあることを知っています。その ActiveRecord 機能をacts_as_apigem と一緒に使用する方法があるかどうかを知りたいです。

4

1 に答える 1