Усечение с пользовательским пропуском
Подобно тому, что некоторые другие предложили здесь, вы можете использовать метод Rails ' # truncate и использовать пользовательское упущение, которое фактически является последней частью вашей строки:
string = "abcd asfsa sadfsaf safsdaf aaaaaaaaaa aaaaaaaaaa dddddddddddddd"
truncate(string, length: 37, omission: "...#{string[-5, 5]}")
# => "abcd asfsa sadfsaf safsdaf aa...ddddd"
Именно то, что вы хотели.
Бонусные баллы
Возможно, вы захотите обернуть это в пользовательский метод, называемый чем-то вроде truncate_middle
, который сделает для вас какую-то необычную работу:
# Truncate the given string but show the last five characters at the end.
#
def truncate_middle( string, options = {} )
options[:omission] = "...#{string[-5, 5]}" # Use last 5 chars of string.
truncate( string, options )
end
А потом просто назовите это так:
string = "abcd asfsa sadfsaf safsdaf aaaaaaaaaa aaaaaaaaaa dddddddddddddd"
truncate_middle( string, length: 37 )
# => "abcd asfsa sadfsaf safsdaf aa...ddddd"
Boom!
Спасибо, что спросили об этом. Я думаю, что это полезный способ показать фрагмент более длинного фрагмента текста.