阵列到单个部分



我正在尝试使用以下方法收集来自一群人的电子邮件:

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

函数的结果(即Array#collect的结果)是一个Array;括号和引号是由Array转换为String的方式引入的工件。如果您控制转换过程,通常会更好 - 因为您确切地知道您收到的内容。

在这种情况下,您可以使用将Array的字符串表示形式粘在一起的Array#join,将参数String用作胶水。

也许,你看到了,虽然pinspect.双引号不是字符串的一部分。它们只是表示字符串文学的方式。括号和逗号表示它们在数组中。当您通过pinspect看到它们时,它们就在那里.如果您想查看它们的实际外观,请使用 puts .

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

emails = representative_email(group).join(';')

使用find时也应该非常小心,因为它可以,如果找不到您要查找的内容,则会抛出 ActiveRecord::RecordNotFound 异常,因此您必须准备好挽救此问题。我也不确定你在这里想做什么,User.find的电话似乎不合适。

相关内容

  • 没有找到相关文章

最新更新