Если размер текста обычно меньше 10 МБ, вполне разумно разделить текст в действии.Перерасход памяти в Rails намного больше, поэтому не стоит беспокоиться.
Однако, если размер текста обычно превышает 10 МБ, вам следует выбрать подстроку непосредственно из хранилища данных.Например, если вы используете MySQL и ActiveRecord, вы можете сделать что-то вроде этого:
# assuming fields `id`, and `body`
class Article < ActiveRecord
def self.find_page(id, page_number, page_size = 10_000)
page_number = page_number.to_i
page_size = page_size.to_i
pos = page_size * (page_number - 1)
# http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring
find(id, :select => "id, SUBSTRING(body, #{pos}, #{page_size}) AS body")
end
end
(10МБ, конечно, произвольное число. Выберите подходящее)