Ruby on rails 使用带有索引和分页的每个_中断循环

Ruby on rails 使用带有索引和分页的每个_中断循环,ruby-on-rails,Ruby On Rails,在一个评论循环中,我尝试在前3个之后添加一个中断,使用“每个_和_索引”,如下所示: <% @comments.each_with_index do |question, i| %> <% if i == 2 %> This is a break <% end %> <%= @comment.body %> <% end %> 这是一次休息 问题是我正在使用will_paginate gem对每页3条评论进行分页。这意味

在一个评论循环中,我尝试在前3个之后添加一个中断,使用“每个_和_索引”,如下所示:

<% @comments.each_with_index  do |question, i| %>
<% if i == 2 %>
  This is a break
<% end %>
  <%= @comment.body %>
<% end %>

这是一次休息

问题是我正在使用will_paginate gem对每页3条评论进行分页。这意味着,由于每页都会重置“i”,因此每3条注释都会重复中断。有没有办法找到第三条注释?

这不是理想的解决方案,但您可以为每个元素渲染一个“中断”,并使用css的第n个子选择器仅显示第三条注释

.break {
    display: none;
}

div:nth-child(3) .break {
    display: block;
}

<div>1<span class="break">break</span></div>
<div>2<span class="break">break</span></div>
<div>3<span class="break">break</span></div> <!-- only this .break will be shown -->
<div>4<span class="break">break</span></div>
<div>5<span class="break">break</span></div>
<div>6<span class="break">break</span></div>
.break{
显示:无;
}
分区:第n个孩子(3)。休息{
显示:块;
}
1破损
2突破
3休息
4休息
5破产
6突破

另一种选择是在外部范围中使用标志,以防止多次呈现“中断”。(以下各项尚未测试。)


这是一次休息

我找到了一个解决方案,使用will_paginate的当前页面方法,这样中断将只显示在第一页上

<% @comments.each_with_index  do |question, i| %>    
<% if @comments.current_page == 1 && i == 2 %>
 Break
<% end %>
 <%= @comment.body %>    
<% end %>

打破

我不清楚这个问题。我只想显示一次的中断(在第三条评论之后)会在每三条评论之后重复。似乎使用标志会导致同样的问题。在3次注释后,它将“渲染中断”重置为true。我不太确定是否使用css来隐藏分隔符,因为分隔符本身就是一个相当大的部分,我担心这会减慢注释的呈现速度。
<% @comments.each_with_index  do |question, i| %>    
<% if @comments.current_page == 1 && i == 2 %>
 Break
<% end %>
 <%= @comment.body %>    
<% end %>