Ruby 阵列到单个片段

Ruby 阵列到单个片段,ruby,arrays,ruby-on-rails-3,Ruby,Arrays,Ruby On Rails 3,我试图通过以下方式收集一群人的电子邮件: def representative_email(group) group.representatives.collect{ |m| rep.User.find(m.user_id) rep.email } end 但是,这会产生如下结果:[”email@email.com", "email2@email.com“] 如何删除所有[]和“并仅保留: email@email.com, email2@email.com 事实上,最

我试图通过以下方式收集一群人的电子邮件:

def representative_email(group)
  group.representatives.collect{ |m|
    rep.User.find(m.user_id)
    rep.email
  }
end
但是,这会产生如下结果:
[”email@email.com", "email2@email.com“]

如何删除所有
[]
并仅保留:

email@email.com, email2@email.com
事实上,最好用分号代替逗号

def representative_email(group)
  group.representatives.collect{ |m|
    rep.User.find(m.user_id)
    rep.email
  }.join('; ')
end
函数的结果(即
数组#collect
的结果)是一个
数组
;括号和引号是通过将
数组
转换为
字符串
的方式引入的工件。如果你控制转换过程,它通常会更好——因为你确切地知道你收到了什么


在本例中,您可以使用
Array#join
Array
的字符串表示形式粘在一起,使用参数
string
作为粘合剂。

您可能已经看到,尽管
p
inspect
。双引号不是字符串的一部分。它们只是代表文学弦的方式。括号和逗号表示它们在一个数组中。当您通过
p
inspect
查看它们时,它们就在那里。如果您想查看它们的实际外观,请使用
put

您看到的是您创建的阵列的“字符串化”版本。如果希望以不同的方式格式化,则在调用时应执行以下操作:

emails = representative_email(group).join(';')
在尽可能使用
find
时,您也应该非常小心,如果无法找到您要查找的内容,它将抛出ActiveRecord::RecordNotFound异常,因此您必须准备好挽救它。我不知道你在这里调用
用户想做什么。也不知道你是否发现
似乎不合适