我在网上找到了一些资源,而不是在做类似的事情时:
cars = Car.where(:colour => 'black')
查询不会执行,直到您执行以下操作:
cars.each {|c| puts c.name }
但是,在我的 Rails 3.2.6 项目中,当我在控制台中执行以下操作时:
User.where(:first_name => "John")
我得到以下信息:
User Load (1.2ms) SELECT `users`.* FROM `users` WHERE `users`.`first_name` = 'John'
那么,查询正在执行吗?
延迟加载到哪里去了?或者我在这里遗漏了什么?
控制台调用inspect
您键入的任何表达式的结果,以便它可以将其显示给您。inspect
是会触发查询负载的事情之一。如果你这样做
x = User.where(:first_name => 'John'); false
那么你应该看不到任何查询,因为这次控制台正在调用检查false
而不是在 Active Record 关系对象上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)