【问题标题】:how to convert array output to normal string in ruby on rails application如何在ruby on rails应用程序中将数组输出转换为普通字符串
【发布时间】:2013-04-13 12:46:54
【问题描述】:

我正在实现标签功能,一篇文章可能有一对多标签。我能够以这种格式从 db 获取标签值

["social network", "professional"]

我想要这种格式的输出

"social network professional"

我想将数组转换为不带, 的字符串。下面是一段代码 sn-p,它从 db 中取出值作为一个数组。

<%= article.tags.collect(&:name) %>

如何将此输出转换为不带任何逗号的字符串值?

【问题讨论】:

    标签: ruby-on-rails ruby arrays string


    【解决方案1】:

    你看过pluck吗?如果您只需要数据库中的一条记录(在您的情况下为“名称”),这非常有用。您可以使用它来执行此操作:

    a = article.tags.pluck(:name)
    

    然后输出以空格分隔的文章名称:

    a.join(" ")
    

    为了完整起见,您可以像这样链接这些方法(就像您在下面的评论中所说的那样):

    article.tags.pluck(:name).join(" ")
    

    【讨论】:

    • 是的,我知道,但区别在于两者在哪个级别上运行。 pluck 在db 级别上运行,collect 在阵列上运行。要查看实际情况,请检查您的tail -f /log/development.log 是否了解这两种情况。使用collect 方法,查询返回所有字段,然后收集您想要的字段,使用pluck,只检索db 参数。
    【解决方案2】:

    我得到了以下两个解决方案:

    <%= article.tags.collect(&:name).join(" ")%>
    <%= article.tags.pluck(:name).join(" ") %> - by yossarian.
    

    【讨论】:

      【解决方案3】:

      ["社交网络", "专业"].join(",")

      “社交网络,专业”

      或者如果你不想要逗号

      ["社交网络", "专业"].join(" ")

      “社交网络专业人士”

      【讨论】:

      • .join(" ") 已在两个现有答案中提及。
      猜你喜欢
      • 2017-01-13
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      相关资源
      最近更新 更多