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模板中做类似的事情。 它可能不像你所期望的那么优雅,但是它与我在几种语言中看到的实现是一样的,所以这可能是可读性的一个胜利。