我有一个Rails模型,条目数量相对较少(目前在300左右,可能永远不会超过1000)。
它目前在其索引页面上对项目进行分页,以便在页面上显示20个结果。
我刚刚在搜索字段中添加了Twitter Typeahead,我正在使用记录的名称来提供自动填充建议。问题是,当我对结果进行分页时,我只能为当前分页批次中的20个项目提供建议。
每个模型我唯一需要的就是它的名称,我不想加载/解析每个记录,因为这将取消分页的大部分优势。
那么我怎样才能保持合理的分页,还能以有效的方式访问所有记录的名称?
答案 0 :(得分:1)
您可以使用pluck单独获取名称。
@names = MyModel.pluck(:name)
请注意,在Rails 3中,您只能提供1个列名作为pluck
的参数。
分页通常会转到LIMIT
,因此仍然可以检索所有记录的唯一方法是进行另一次查询。
使用pluck
,您只需要从数据库中检索所需的字段,当您完成所有模型的完整集合时,您将不会有ActiveRecord
带来的开销。