我正试着把一套牌分成三行。 当前集合大小为8。 所以它应该渲染成3行,前两行填满3张牌,最后一行有2张牌。
目前我可以将8个对象渲染成3行。 但是,它不是在前一行下创建行,而是在当前行内创建新的行div
,从而使布局脱节。
我认为div
语句的结束条件给我带来了问题。
呈现卡片的代码:
<% @count = 0 %>
<% @col_count = 0%>
<div class="card-group">
<% @user.articles.each do |article| %>
<% if @count == 3 %>
<% @count = 0%>
<% end %>
<% if @count == 0 %>
<div class="row">
<% end %>
<div class="card col-4">
<img class="card-img-top" src="..." alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Test Card</h5>
<p class="card-text">This is a placeholder card.</p>
</div>
</div>
<% if @count == 0 && @col_count == 2 %>
</div>
<% @col_count = 0 %>
<% end %>
<% @count = @count + 1 %>
<% @col_count = @col_count + 1 %>
<% end %>
</div>
感谢任何帮助。
我认为如果使用each_slice
会更好,它应该如下所示:
<% @user.articles.each_slice(3) do |articles| %>
<div class="row">
<% articles.each do |article| %>
<div class="card col-4">
<img class="card-img-top" src="..." alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Test Card</h5>
<p class="card-text">This is a placeholder card.</p>
</div>
</div>
<% end %>
</div>
<% end %>
如果我有任何错误,请纠正我。