我有一个数据库表users
。我正在尝试查询数据库以获取所有年龄大于 18 岁的用户。
adult_users = User.where('age > 18')
根据延迟加载特性,上述查询将不会执行,而只会创建一个 Active Record Relation。只有当您调用 adult_users.first
或您对其进行一些其他操作时,才会执行实际查询。
但是在 Rails 控制台中,即使您点击 User.where('age > 18')
,您也可以看到查询正在执行。
怎么会这样?
最佳答案
在控制台中,它会在检查 ActiveRecord::Relation
如果启用日志记录,您甚至可以看到 User Load
条目。
如果你输入
adult_users = User.where('age > 18'); nil
然后变量将不会被检查并且不会运行查询
关于ruby-on-rails - 如果启用了延迟加载,rails 控制台如何在查询时提供结果集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34160125/