2011-03-30 55 views
1
早期

有人说:停止meta_search做SQL在<a href="http://rdoc.info/github/ernie/meta_search/master/MetaSearch/Searches/ActiveRecord/ClassMethods#metasearch-instance_method" rel="nofollow">docs</a>

MyObject.search() 

返回整合检索的实例::生成器(类似的ActiveRecord ::关系)。但在我的情况下,当我这样做时,我得到了一个对象集合,因为sql查询被发送到数据库。

我想有这样的事情:

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?

- >确定,神秘的东西在我的壳怎么回事:

search = MyObject.search() # queries the database 
search = MyObject.search(); 0 # stores a MetaSearch-Object in search 

控制台似乎每个COMAND之后调用额外的方法

回答

2

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

相关问题