Метод Rails для конкатенации - PullRequest
3 голосов
/ 11 марта 2012

Можно ли объединить массив ['a', 'b', 'c'] в строку "a, b and c"?
Но ['a', 'b'] должно преобразоваться в "a and b".

Ответы [ 3 ]

7 голосов
/ 11 марта 2012

Rails предоставляет to_sentence помощник:

> ['a', 'b'].to_sentence
 => "a and b" 
> ['a', 'b', 'c'].to_sentence
 => "a, b, and c" 

Если вы хотите a, b and c вместо a, b, and c, вы можете изменить last_word_connector:

> ['a', 'b', 'c'].to_sentence(last_word_connector: " and ")
 => "a, b and c" 
2 голосов
/ 11 марта 2012
a = %w{ a b }
str = a[0..-3].each_with_object("") do |item, res|
 res << "#{item}, "
 res
end
str << "#{a[-2]} and  #{a[-1]}"
p str
1 голос
/ 11 марта 2012
a = ['a', 'b', 'c']
result = a[0...-1].join ', '
result += " and #{a[-1]}" if a.length > 1
result # => a, b and C

a = ['a', 'b']
result = a[0...-1].join ', '
result += " and #{a[-1]}" if a.length > 1
result # => a and b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...