我正在使用Ruby on Rails。在我的文件共享应用程序中,我有一个如下所示的模型结构:
User has many Entities
Entity belongs to User
Entity has many Reports
Report belongs to Entity
Report has many Shares
Share belongs to Report
现在,当我有一个share_id时,如何在一个db查询中提取该share_id的用户,实体和报告信息?最好是做3个简单查询还是一个复杂的连接类型查询?
答案 0 :(得分:1)
我认为像这样使用includes
应该有效:
Share.includes(report: { entity: :user }).find(share_id)
另请参阅此问题:ActiveRecord Includes
<强>更新强>
显然,您需要的API是eager_load
Share.eager_load(report: { entity: :user }).find(share_id)