ruby-on-rails - `each` 循环中的下一次迭代

标签 ruby-on-rails ruby

我有一个收藏:

@monday = HomeTask.where(:class_room => current_user.class_room, :day => 'Понеділок').order(created_at: :desc)

@monday 变量包含来自数据库的数据。在 View 中,我显示了集合中的所有日期:

<% @monday.each_with_index do |mnd, i| %>
  <% if mnd.data == mnd.data[i + 1] %>
    <%= link_to 'nice' %>
  <% else %>
    <%= link_to 'ohhh...' %>
  <% end %>
<% end %>

if 主体中,我想引用下一个元素。但它不起作用。在 C++ 中,要在第一次迭代中引用下一个元素,可以这样编码:

if(array[i] == array[i+1])

如何在 Ruby 中使用 each

最佳答案

如果您想迭代一个数组并在每次迭代中访问多个项目,您可以使用 each_cons

arr = [1,2,3,4,5,6,7,8]
arr.each_cons(2){|a,b| 
   puts "#{a} : #{b}"
}
# 1 : 2
# 2 : 3
# 3 : 4
# 4 : 5
# 5 : 6
# 6 : 7
# 7 : 8

使用 each_cons,您可以轻松地比较数组中的两个(或更多)连续项。

关于ruby-on-rails - `each` 循环中的下一次迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53925031/

相关文章:

ruby-on-rails - Ruby:在转换数组中的对象后传递键/值

ruby-on-rails - 如何将项目添加到 json 对象 ruby​​ on rails?

javascript - 使用rails如何将 Controller 中的变量同步到 View ,其中 Controller 是更新的发起者

ruby - 如何在 crontab 中测试东西

ruby - 获取按各自键排序的散列值的最佳方法? ( ruby )

ruby-on-rails - Cancancan嵌套资源授权

mysql - 我如何编写此语句才能使其保持为 ActiveRecord 调用?

javascript - 将 Rails 后端添加到 JS/HTML/CSS 应用程序时,正确的文件位置是什么?

ruby-on-rails - Ruby:将 <br> 转换为换行 URI 编码

Ruby Mixin 对对象的依赖