在docs中说:
MyObject.search()
返回一个MetaSearch :: Builder实例(类似ActiveRecord :: Relation)。但在我的情况下,当我这样做时,我得到一个对象集合,因为sql-query被发送到数据库。
我想有这样的事情:
search = MyObject.search() # no sql-query should be done here
count = search.count # count sql done
objects = search.all # select sql done - maybee with pagination
有没有人知道如何阻止Meta_search早期进行查询?
- >好吧,我的shell中发生了一些神秘的事情:
search = MyObject.search() # queries the database
search = MyObject.search(); 0 # stores a MetaSearch-Object in search
控制台似乎在每个命令之后调用一个额外的方法
答案 0 :(得分:2)
如果您正在使用irb进行测试,请注意检查返回的对象。对于MetaSearch构建器,这意味着将检查关系。如果你看一下ActiveRecord的inspect方法,在relation.rb中,你会看到它调用to_a,它执行查询并返回结果。