Содержимое Ruby-вывода массива в виде строки с разделителями-запятыми Ruby

Есть ли более правильный способ вывода содержимого массива в виде строки с разделителями-запятыми

@emails = ["[email protected]", "[email protected]", "[email protected]"]

@emails * ","

=> "[email protected]", "[email protected]", "[email protected]"

Это работает, но я уверен, что должно быть более элегантное решение.

Ответ 1

Вы пробовали это:

@emails.join(",")

Ответ 2

Хотя OP и многие ответы подразумевают, что массив всегда имеет контент, иногда мне нужно присоединиться к списку, который может содержать "пустые" элементы (как правило, для конкатенации данных для пользовательского интерфейса).

Здесь мало "прогрессии" того, как разные подходы обрабатывают такой "несовершенный" массив строк:

['a','b','',nil].join(',') # => "a,b,," 
['a','b','',nil].compact.join(',') # => "a,b,"
['a','b','',nil].compact.reject(&:empty?).join(',') # => "a,b"
['a','b','',nil].reject(&:blank?).join(',') # Rails only

Последний из них является моим любимым (Rails).

Ответ 3

Мне просто нужно было сделать что-то подобное в шаблоне ERB, используя AllowedUsers <%= _allowed_users.join(" ") %>. Это может быть не так элегантно, как вы искали, но это та же самая реализация, которую я видел на нескольких языках, так что это может быть победой для удобочитаемости.