Вы можете использовать str.split.first(n).join(' ')
где n - любое число.
Смежные пробелы в исходной строке заменяются одним пробелом в возвращаемой строке.
Например, попробуйте это в irb:
>> a='apple orange pear banana pineaple grapes'
=> "apple orange pear banana pineaple grapes"
>> b=a.split.first(2).join(' ')
=> "apple orange"
Этот синтаксис очень понятен (так как он не использует регулярное выражение, срез массива по индексу). Если вы программируете на Ruby, вы знаете, что ясность - важный стилистический выбор.
Сокращение для join
- *
Таким образом, этот синтаксис str.split.first(n) * ' '
эквивалентен и короче (более идиоматичен, менее понятен для непосвященных).
Вы также можете использовать take
вместо first
поэтому следующее будет делать то же самое
a.split.take(2) * ' '