自动完成与分页

时间:2013-11-18 19:26:08

标签: ruby-on-rails ruby-on-rails-3 activerecord pagination twitter-typeahead

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

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

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

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

那么我怎样才能保持合理的分页,还能以有效的方式访问所有记录的名称?

1 个答案:

答案 0 :(得分:1)

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

@names = MyModel.pluck(:name)

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

分页通常会转到LIMIT,因此仍然可以检索所有记录的唯一方法是进行另一次查询。

使用pluck,您只需要从数据库中检索所需的字段,当您完成所有模型的完整集合时,您将不会有ActiveRecord带来的开销。