如果启用延迟加载,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
然后变量将不会被检查并且不会查询 运行
我有一个数据库 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
然后变量将不会被检查并且不会查询 运行