Ruby on rails 停止meta_搜索,提前执行sql

Ruby on rails 停止meta_搜索,提前执行sql,ruby-on-rails,meta-search,Ruby On Rails,Meta Search,书中说: MyObject.search() 返回MetaSearch::Builder的实例(类似于ActiveRecord::Relation)。但是在我的例子中,当我这样做时,我得到一个对象集合,因为sql查询被发送到数据库 我想要这样的东西: search = MyObject.search() # no sql-query should be done here count = search.count # count sql done objects = search.all

书中说:

MyObject.search()
返回MetaSearch::Builder的实例(类似于ActiveRecord::Relation)。但是在我的例子中,当我这样做时,我得到一个对象集合,因为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

控制台似乎在每次通信后调用一个额外的方法,如果您在irb中进行测试,请注意返回的对象会被检查。对于元搜索生成器,这意味着要检查关系。如果查看ActiveRecord的inspect方法relation.rb,您将看到它调用了_a,后者执行查询并返回结果