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_api
gem と一緒に使用する方法があるかどうかを知りたいです。