我有一个数据库表users
。我正在尝试查询数据库以获取年龄大于18的所有用户。
adult_users = User.where('age > 18')
根据延迟加载功能,不会执行上述查询,而只会创建一个Active Record Relation。只有当您致电adult_users.first
或进行其他操作时,才会执行实际查询
但是在rails控制台中,即使您点击User.where('age > 18')
,也可以看到正在执行的查询
怎么会发生这种情况?
答案 0 :(得分:3)
在控制台中,它会在检查ActiveRecord::Relation
如果启用了日志记录,您甚至可以看到User Load
条目。
如果您输入
adult_users = User.where('age > 18'); nil
然后不会检查变量并且不运行查询