0

我有一个条目数量相对较少的 Rails 模型(目前约为 300,可能永远不会超过 1000)。

它目前在其索引页面上对项目进行分页,以每页显示 20 个结果。

我刚刚将 Twitter Typeahead 添加到搜索字段中,并且我正在使用记录的名称来提供自动完成建议。问题是,当我对结果进行分页时,我只能为当前分页批次中的 20 个项目提供建议。

每个模型我唯一需要的是它的名称,我不想加载/解析每条记录,因为这会抵消分页带来的大部分优势。

那么我怎样才能保留合理的分页,同时又能以有效的方式访问所有记录的名称呢?

4

1 回答 1

1

您可以使用pluck单独获取名称。

@names = MyModel.pluck(:name)

请注意,在 Rails 3 中,您只能提供 1 个列名作为pluck.

分页通常使用LIMIT,因此仍然检索所有记录的唯一方法是进行另一个查询。

由于pluck您只是从数据库中检索所需的字段,并且ActiveRecord当您浏览所有模型的完整集合时,您将不会产生开销。

于 2013-11-18T19:36:31.107 回答