如何根据每页的最大单词数进行分页

时间:2013-04-04 06:10:07

标签: ruby-on-rails pagination will-paginate

我的内部网站搜索引擎,基于pg_search,有时会在搜索结果中返回太多文本,以至于Heroku无法加载页面。

问题是,有些搜索结果很长,我每页只能发布其中一个,而其他搜索结果很短,我可以轻松地一次发布其中的20个。

所以我想分页搜索结果,但我想限制每个页面上按字数计算的内容量,而不是结果数量。

我已经看过Ruby Toolbox上的主要分页宝石,比如will_paginate,但我找不到任何提供此功能的宝石。

是否存在合适的宝石?或者使用像will_paginate这样的宝石有什么简单的方法吗?

1 个答案:

答案 0 :(得分:0)

Displaying Only the first x words of a string in rails

我修改了这个方法来获取

def get_n_words_with_offset(message, first_n_words=1, offset=0)
   string_arr = message.split(' ')
   string_arr.count > first_n_words ? "#{string_arr[offset..(offset+first_n_words-1)].join(' ')}..." : self
end

从那里你可以创建一个伪模型,它将“分页”或重新分割由字数返回的模型数组。让其中一个模型封装一个页面,你可以使用一个分页宝石,其中一个模型位于每个页面上。