如何从数组中删除方括号和逗号

时间:2016-12-02 13:58:10

标签: ruby-on-rails ruby

我正在为Likes创建一个工具提示。这是images,我将其传递给工具提示:

images = bonus.like_user_avatars.map {|src| "<img src='#{src}'>" }

bonus.like_user_avatar已经是喜欢的用户的头像的集合。 一切正常,但看起来像这样:

enter image description here

这是工具提示代码:

span.has-tip data-tooltip="" data-template="<div class='tooltip'>#{images}</div>"Like

我需要删除方括号和逗号,我只想要工具提示中的头像。我该怎么办?

3 个答案:

答案 0 :(得分:1)

两种可能性:

  1. 您可能需要告诉rails您的HTML是安全的。呼叫 渲染时字符串上的.html_safe
  2. 我宁愿在src中保存bonus.like_user_avatars属性,然后通过rails方法将其添加到html中。例如,在您的视图中(假设您使用以前语法中的slim)。

    - bonus.like_user_avatars.each do |src|
      = image_tag src, #any options you want here
    
  3. 注意http://apidock.com/rails/ActionView/Helpers/AssetTagHelper/image_tag将有助于image_tag方法

答案 1 :(得分:1)

mapeach之间存在差异。

2.3.0 :001 > array = [1,2,3]
 => [1, 2, 3]
2.3.0 :002 > array.map {|v| v+1}
 => [2, 3, 4]
2.3.0 :003 > array.each {|v| v+1}
 => [1, 2, 3]
当您想要转换原始列表时,使用

map(它不会变异)。使用map时,您只需使用新值创建新列表。当你想要产生某种效果时,应该使用each,在这种情况下,你输出一些东西。

在您的情况下,您需要使用bonus.like_user_avatars.each

答案 2 :(得分:1)

只需join数组中的值

images.join # <img src='a.jpg'><img src='b.jpg'><img src='c.jpg'>

只需用以下代码替换代码:

span.has-tip data-tooltip="" data-template="<div class='tooltip'>#{images.join}</div>"Like