2013-04-04 17 views
0

我的內部網站搜索引擎基於pg_search,有時會在其搜索結果中返回太多文本以致Heroku無法加載頁面。如何基於每頁最大字數來分頁

問題是,一些搜索結果很長,我只能在每個頁面上發佈其中一個,而其他搜索結果很短,我可以一次輕鬆發佈20個。

所以我想對我的搜索結果進行分頁,但是我希望限制每個頁面上按字數統計的內容數量,而不是結果數量。

我已經看過Ruby工具箱上的主要分頁寶石像will_paginate,但我找不到任何提供此功能的東西。

是否存在合適的寶石?或者,有沒有一種簡單的方法可以像will_paginate一樣使用gem?

+0

是否需要顯示總共找到的結果或僅顯示一部分結果,以便用戶可以決定它是否與他/她相關?您可能會將結果文本切分爲極限數量的字符,如「#{result.slice(0,100)} ...」,然後提供指向整個結果呈現的詳細信息頁面的鏈接 – jethroo 2013-04-04 08:55:01

+0

我想到了,但不幸它不會是這個特定的應用程序的選項 – 2013-04-04 09:08:39

回答

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 

從那裏,你可以創建一個pseudomodel將「分頁」或resplit按字數返回車型陣列。讓其中一個模型封裝一個頁面,並且您可以在每個頁面上使用這些模型中的一個模板。