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,后者执行查询并返回结果