【问题标题】:stop meta_search doing sql to early尽早停止 meta_search 执行 sql
【发布时间】:2011-07-26 01:54:12
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails meta-search


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2021-11-26
      相关资源
      最近更新 更多