Ruby以逗号分隔的stringRuby的forms输出数组的内容

有没有更正确的方法来输出一个数组的内容作为逗号分隔的string

@emails = ["joe@example.com", "Peter@example.com", "alice@example.com"] @emails * "," => "joe@example.com", "Peter@example.com", "alice@example.com" 

这工作,但我相信必须有一个更优雅的解决scheme。

你有没有试过这个:

 @emails.join(",") 

虽然OP和许多答案意味着数组总是有内容,但有时我发现自己需要join一个可能包含“空”元素(通常用于连接UI的数据)的列表。

以下是关于不同方法如何处理这种“不完美”string的“进展”:

 ['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)方法。

我只需要使用AllowedUsers <%= _allowed_users.join(" ") %>在ERB模板中做类似的事情。 它可能不像你所期望的那么优雅,但是它与我在几种语言中看到的实现是一样的,所以这可能是可读性的一个胜利。