如果启用延迟加载,rails 控制台如何在查询时提供结果集?

How rails console provide result set on querying if Lazy Loading is enabled?

我有一个数据库 table users。我正在尝试查询数据库以获取所有年龄大于 18 岁的用户。

adult_users = User.where('age > 18')

根据延迟加载特性,上述查询将不会执行,而只会创建一个活动记录关系。实际查询只会在您调用 adult_users.first 或对其进行其他操作时执行。
但是在 rails 控制台中,即使您点击 User.where('age > 18'),您也可以看到查询正在执行。
怎么会这样?

在控制台中,它会在检查 ActiveRecord::Relation

时执行查询

如果启用日志记录,您甚至可以看到 User Load 条目。

如果你输入

adult_users = User.where('age > 18'); nil

然后变量将不会被检查并且不会查询 运行