仅在第一次迭代中跳过循环中的第一条记录

时间:2017-10-25 09:46:42

标签: ruby-on-rails ruby

我想创建一个每个循环,它将跳过第一个循环的第一个记录,但在第二个迭代时显示它。这可能吗?

我知道以下内容将从数组中的第二项开始,但显然它仍会跳过第二个循环的第一个记录。

    <% @example[1..n].each do |example| %>
      ...
    <% end %>

编辑:要提供一些上下文 - 这是我目前的代码。我真的不太了解javascript,我可能会以一种比它需要的更复杂的方式来做这件事。

也有人可以解释为什么在给予反对票时这是一个不好的问题。我正试图从头学习。我不知道有谁编码,所以我无法反复某人的想法,所以人们告诉我,如果我误解了这个概念会很好,因为我没有任何理由地从负面投票中学到任何东西

<div class="row no-gutters">
<div class="col-md-8 col-sm-8  no-gutters">
<div class="divs">
    <% @example.each do |example| %>
        <!--example information goes here -->
    <% end %>
    </div>
</div>
<div class="col-md-4 col-sm-4  no-gutters">
    <div class="row no-gutters">
        <div class="col-md-12 no-gutters" style="position: relative; text-align: center; color: white;">
            <div class="divs2">
                <% @example.each do |example| %>
                    <!--this is the one I want to skip the first item on-->
                <% end %>   
            </div>
        </div>
        <div class="col-md-12 no-gutters">
            <div class="container text-center">     
                <span>
                    <a id="prev" class="hidden"><i class="fa fa-arrow-left" aria-hidden="true"></i></a>
                    <a id="next"><i class="fa fa-arrow-right" aria-hidden="true"></i></a>
                </span>
            </div>
        </div>
    </div>  
</div>

$('a#next').click(function(){
$('a#prev').removeClass('hidden');
    });

 $(document).ready(function(){
$(".divs div").each(function(e) {
    if (e != 0)
        $(this).hide();
});

$("#next").click(function(){
    if ($(".divs div:visible").next().length != 0)
        $(".divs div:visible").next().show().prev().hide();
    else {
        $(".divs div:visible").hide();
        $(".divs div:first").show();
    }
    return false;
});

$("#prev").click(function(){
    if ($(".divs div:visible").prev().length != 0)
        $(".divs div:visible").prev().show().next().hide();
    else {
        $(".divs div:visible").hide();
        $(".divs div:last").show();
    }
    return false;
});

$(document).ready(function(){
$(".divs2 div").each(function(e) {
    if (e != 0)
        $(this).hide();
});

$("#next").click(function(){
    if ($(".divs2 div:visible").next().length != 0)
        $(".divs2 div:visible").next().show().prev().hide();
    else {
        $(".divs2 div:visible").hide();
        $(".divs2 div:first").show();
    }
    return false;
});

$("#prev").click(function(){
    if ($(".divs2 div:visible").prev().length != 0)
        $(".divs2 div:visible").prev().show().next().hide();
    else {
        $(".divs2 div:visible").hide();
        $(".divs2 div:last").show();
    }
    return false;
}); });

1 个答案:

答案 0 :(得分:5)

使用drop方法。

@example.drop(1).each do |item|
...
end

然后使用普通each

@example.each do |item|
...
end

Documentation