вы можете использовать усечение, чтобы ограничить длину строки
truncate("Once upon a time in a world far far away", :length => 17, :separator => ' ')
# => "Once upon a..."
с указанным разделителем пробела, это не обрежет ваши слова.
Если вы хотите ровно 5 слов, вы можете сделать что-то вродеэто
class String
def words_limit(limit)
string_arr = self.split(' ')
string_arr.count > limit ? "#{string_arr[0..(limit-1)].join(' ')}..." : self
end
end
text = "aa bb cc dd ee ff"
p text.words_limit(3)
# => aa bb cc...