如何将分隔符/分隔符添加到Rails块

时间:2014-12-25 11:27:52

标签: ruby-on-rails ruby ruby-on-rails-4 block delimiter

我有以下块:

<% @place.each do |f| %>
  <%= f.name %><br>
  <%= f.type %>
<% end %>

使用display: inline-block水平打印。如何在每对之间添加分隔符或分隔符,但不能在最后一对之后添加?

看起来应该是这样的:

printout - printout - printout - printout

4 个答案:

答案 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 %>