我正在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
也就是说,客户名称不包含在项目模型中,而是包含在客户模型中。因此,此信息不包含在项目表中。
使用Bullet gem 我注意到在 clients 表中正在执行 N+1 查询。对于每个项目,还执行对 clients 表的 SQL 查询。
我知道 ActiveRecord 在 API 中有一些实用程序可以避免 N+1 查询,我想知道是否有办法将 ActiveRecord 功能与acts_as_api
gem 一起使用。