Ruby on rails 在ruby for循环中解析逗号
所以我在我的ruby on rails应用程序中循环一个object for loop 目前代码如下:Ruby on rails 在ruby for循环中解析逗号,ruby-on-rails,ruby,loops,gsub,Ruby On Rails,Ruby,Loops,Gsub,所以我在我的ruby on rails应用程序中循环一个object for loop 目前代码如下: <%overlays.by_time.each do |overlay| %> { "content": "<a href=''><img src='<%= overlay.imageurl %>'></a>", start: <%=overlay.starttime %>, end: &l
<%overlays.by_time.each do |overlay| %>
{
"content": "<a href=''><img src='<%= overlay.imageurl %>'></a>",
start: <%=overlay.starttime %>,
end: <%=overlay.starttime %> + <%= overlay.duration %>,
style: {<%=raw theme.contact_us_overlay_style %>},
click_url: '<%= overlay.linkurl %>'
},
<%end>
{
“内容”:“,
开始:,
完:+,,
样式:{},
单击url:“”
},
问题是逗号,它阻止我的videojs播放器运行。下一个覆盖内容需要逗号,但上一个内容不需要逗号,这是导致它的问题。如何在上一次对象迭代中删除它?您有几种可能性。一个快速(但不是很优雅)的方法是检查物品是否是最新的 例如,您可以使用带有索引的每个\u
:
<% overlays.by_time.each_with_index do |overlay, index| %>
{
"content": "<a href=''><img src='<%= overlay.imageurl %>'></a>",
start: <%=overlay.starttime %>,
end: <%=overlay.starttime %> + <%= overlay.duration %>,
style: {<%=raw theme.contact_us_overlay_style %>},
click_url: '<%= overlay.linkurl %>'
}<%= "," unless index == (overlays.length - 1) %>
<% end %>
你可以换个角度看。在每一项前加逗号。然后您只需要抑制第0个索引的逗号
{
“内容”:“,
开始:,
完:+,,
样式:{},
单击url:“”
}
先生,您是一位绅士和学者。我试着做一个gsub,但你的要简单得多。谢谢
def json_for_overlays(overlays)
overlays.by_time.map do |overlay, index|
<<-JS
{
content: <a href=""><img src="#{overlay.imageurl}"></a>,
start: #{overlay.starttime},
end: #{overlay.starttime} + #{overlay.duration},
style: {#{raw(theme.contact_us_overlay_style)}},
click_url: '#{overlay.linkurl}'
}
JS
end.join(",")
end
<% overlays.by_time.each_with_index do |overlay, index| %>
<%= "," unless index == 0 %>
{
"content": "<a href=''><img src='<%= overlay.imageurl %>'></a>",
start: <%=overlay.starttime %>,
end: <%=overlay.starttime %> + <%= overlay.duration %>,
style: {<%=raw theme.contact_us_overlay_style %>},
click_url: '<%= overlay.linkurl %>'
}
<% end %>