Ruby: Как получить часть строки?

Мне нужен способ отображать только определенное количество символов из значения строки/текста.

Я хочу, чтобы он работал таким образом, что если my_string.length > 40, то получить первые 40 символов из my_string?

Ответ 1

просто подстройте строку:

mystring[0...40]

Ответ 2

Вы можете сделать:

my_string[0..39]

Ответ 3

Ruby позволяет вырезать строку:

my_string = my_string[0, 40] if (my_string.length > 40)

Как напомнил мне Энди Х, это может быть закорочено на:

my_string = my_string[0, 40]

Вот пример:

str = '1234567890' * 5 #=> "12345678901234567890123456789012345678901234567890"
str[0, 40] #=> "1234567890123456789012345678901234567890"

Ответ 4

my_string.slice!(40..-1)

Вы можете проверить описание для фрагмента! здесь

Ответ 5

Если вы уже используете драгоценный камень activesupport (или если вы не возражаете добавить его как зависимость), вы также можете использовать String # truncate. Если ваша строка длиннее установленного предела, вы увидите "Ваша строка..."