Ruby on rails 加载所有数据,但不是从所有表加载

Ruby on rails 加载所有数据,但不是从所有表加载,ruby-on-rails,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3.2,我看了rails的这段视频,但对于编写一个高效的GET-REST服务的最佳方式,我仍然有些困惑,比如: 假设我们有一个组织表,像其他二十个表一样,有一个属于,并且之间有许多关系。(因此所有这些表都有一个组织id字段) 现在,我想以Rails REST服务的形式编写一个GET和INDEX请求,该服务基于URL中传递给请求的组织id,它可以读取这些表并填充JSON,但不是所有这些表,只针对其中的一部分,例如,对于患者、医嘱和就诊表,那二十张桌子不全是 所以我还是很难弄清楚怎么写这样的一篇文章 .fi

我看了rails的这段视频,但对于编写一个高效的GET-REST服务的最佳方式,我仍然有些困惑,比如:

假设我们有一个组织表,像其他二十个表一样,有一个
属于
,并且
之间有许多关系。(因此所有这些表都有一个组织id字段)

现在,我想以Rails REST服务的形式编写一个GET和INDEX请求,该服务基于URL中传递给请求的组织id,它可以读取这些表并填充JSON,但不是所有这些表,只针对其中的一部分,例如,对于患者、医嘱和就诊表,那二十张桌子不全是

所以我还是很难弄清楚怎么写这样的一篇文章

.find( :all )  
什么样的查询?
有人能给我举个例子,让我了解如何进行这类查询吗?

您可以在一个SQL查询中包含所有这些表:

@organization = Organization.includes(:patients, :orders, :visits).find(1)
现在,当您执行以下操作时:

@organization.patients
它将在内存中加载患者,因为它已经在原始查询中获取了他们。如果没有
包含
@组织。患者
将触发另一个数据库查询。这就是为什么称之为“急切加载”,因为您在实际引用患者之前(急切地)加载组织的
患者,因为您知道您以后将需要这些数据


您可以随时使用
包含
,无论是否使用
全部
。就我个人而言,当我将
includes
方法链接到模型上,而不是将其作为某种散列选项(如Railscast插曲)包含时,我发现它更为明确和清晰。

谢谢,先生。。。“包括”在“模型”中,还是指“控制器”中?我正在考虑在控制器的GET和索引中编写这些查询……我是否偏离了方向?还有最后一个问题:这“包括”了我们使用的东西,在Rails中它叫什么?我的意思是,如果我想打开一本Rail书籍,比如Rails 3-way或Agile Rail书籍,并想更深入地了解它,那么它在Rails术语中被称为什么?我应该学习Rails的哪一部分?我的意思是
includes
方法作用于模型(例如,这里您使用
组织。includes(…)
组织
是模型。您将此代码放在哪里取决于您,在控制器中就可以了。它被称为“渴望加载”。您可以在这里找到官方文档: