我正在为Likes创建一个工具提示。这是images
,我将其传递给工具提示:
images = bonus.like_user_avatars.map {|src| "<img src='#{src}'>" }
bonus.like_user_avatar
已经是喜欢的用户的头像的集合。
一切正常,但看起来像这样:
这是工具提示代码:
span.has-tip data-tooltip="" data-template="<div class='tooltip'>#{images}</div>"Like
我需要删除方括号和逗号,我只想要工具提示中的头像。我该怎么办?
答案 0 :(得分:1)
两种可能性:
.html_safe
。我宁愿在src
中保存bonus.like_user_avatars
属性,然后通过rails方法将其添加到html中。例如,在您的视图中(假设您使用以前语法中的slim)。
- bonus.like_user_avatars.each do |src|
= image_tag src, #any options you want here
注意:http://apidock.com/rails/ActionView/Helpers/AssetTagHelper/image_tag将有助于image_tag
方法
答案 1 :(得分:1)
map
和each
之间存在差异。
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