Existe-t-il une méthode plus correcte pour afficher le contenu d'un tableau sous forme de chaîne délimitée par des virgules
@emails = ["[email protected]", "[email protected]", "[email protected]"]
@emails * ","
=> "[email protected]", "[email protected]", "[email protected]"
Cela fonctionne mais je suis sûr qu'il doit y avoir une solution plus élégante.
Avez-vous essayé ceci:
@emails.join(",")
Bien que l'OP et de nombreuses réponses impliquent que le tableau a toujours du contenu, je me trouve parfois dans l'obligation de rejoindre une liste pouvant contenir des éléments "vides" (généralement pour concaténer des données pour une interface utilisateur).
Voici une petite "progression" de la façon dont différentes approches traitent un tel tableau "imparfait" de chaînes:
['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
Le dernier étant mon approche préférée (Rails).
Je viens de faire quelque chose de similaire dans un modèle ERB en utilisant AllowedUsers <%= _allowed_users.join(" ") %>
. Ce n’est peut-être pas aussi élégant que vous le cherchiez, mais c’est la même implémentation que celle que j’ai vue dans plusieurs langues, ce qui peut être un avantage en termes de lisibilité.