我有以下块:
<% @place.each do |f| %>
<%= f.name %><br>
<%= f.type %>
<% end %>
使用display: inline-block
水平打印。如何在每对之间添加分隔符或分隔符,但不能在最后一对之后添加?
看起来应该是这样的:
printout - printout - printout - printout
答案 0 :(得分:3)
您可以使用数组的join
方法:
<%=
@place.map { |f| "#{f.name}<br>#{f.type}" }
.join(' - ')
.html_safe
%>
答案 1 :(得分:1)
有人写了一个很好的答案,但是在我接受它作为正确答案之前,他把它取下来了。基本上,我在块中添加了一个索引:
<% @count = @place.count %>
<% @place.each_with_index do |f, index| %>
<%= f.name %><br>
<%= f.type %>
<% if index + 1 < @count %>
<div class="delimiter">-</div>
<% end %>
<% end %>
然后使用display: inline;
设置分隔符。
谢谢你,无论谁发布了这个答案。
答案 2 :(得分:1)
一种常见的方法,没有计数器:
<% @place.each do |f| %>
<%= f.name %><br>
<%= f.type %>
<% if f != @place.last %>
<div class="delimiter">-</div>
<% end %>
<% end %>
答案 3 :(得分:0)
barbolo版本的一些重拍,缓存最后一次:
<% @place.each_with_object(@place.last) do |f, last| %>
<%= f.name %><br>
<%= f.type %>
<%= "-" unless f == last %>
<% end %>