停止meta_search早期做sql

时间:2011-03-30 12:45:54

标签: ruby-on-rails meta-search

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

控制台似乎在每个命令之后调用一个额外的方法

1 个答案:

答案 0 :(得分:2)

如果您正在使用irb进行测试,请注意检查返回的对象。对于MetaSearch构建器,这意味着将检查关系。如果你看一下ActiveRecord的inspect方法,在relation.rb中,你会看到它调用to_a,它执行查询并返回结果。