Ответ 1
Вы пробовали это:
@emails.join(",")
Есть ли более правильный способ вывода содержимого массива в виде строки с разделителями-запятыми
@emails = ["[email protected]", "[email protected]", "[email protected]"]
@emails * ","
=> "[email protected]", "[email protected]", "[email protected]"
Это работает, но я уверен, что должно быть более элегантное решение.
Вы пробовали это:
@emails.join(",")
Хотя 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).
Мне просто нужно было сделать что-то подобное в шаблоне ERB, используя
AllowedUsers <%= _allowed_users.join(" ") %>
. Это может быть не так элегантно, как вы искали, но это та же самая реализация, которую я видел на нескольких языках, так что это может быть победой для удобочитаемости.