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

时间:2015-12-08 15:47:10

标签: ruby-on-rails ruby lazy-loading

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

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

根据延迟加载功能,不会执行上述查询,而只会创建一个Active Record Relation。只有当您致电adult_users.first或进行其他操作时,才会执行实际查询 但是在rails控制台中,即使您点击User.where('age > 18'),也可以看到正在执行的查询 怎么会发生这种情况?

1 个答案:

答案 0 :(得分:3)

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

时执行查询

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

如果您输入

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

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