2011-10-31 79 views
0

在rails 3中,活动记录的where语句返回活动记录对象。即它采用延迟加载像rails 3 where语句

cars = Car.where(:colour => 'black') # No Query 
cars.each {|c| puts c.name } # Fires "select * from cars where ..." 

但是当我火,

cars = Car.where(:colour => 'black') 

控制台,它返回的结果没有这种懒加载,为什么?

回答

1

您的控制台隐式调用inspect表达式的结果,这会触发查询。

您可以通过附加一个分号避免检查:

cars = Car.where(:colour => 'black'); 
+1

我建议最好是追加'; nil'作为通用做法。 ';'在输入下一个语句之前不会执行代码。 –

+0

其working.thanks –