我在使用in_groups_of
并获得undefined method
each_with_index'时遇到问题为nil:NilClass`错误。
我在in_groups_of
电话中使用了false作为第二个指标,但无济于事。
以下代码概述了我所拥有的内容。方法模型循环将始终具有3条记录,因此它可以工作。但是进度模型循环可以有1到7,这就是问题所在。如果[i]出现,我是否需要条件声明?或者我有什么遗失的东西?
<% @data.each do |data| %>
<% data.selections.size.times do |i| %>
<% data.methods.order(:selection_id).order("date ASC").in_groups_of(3, false)[i].each_with_index do |e, index| %>
...
<% end %>
<% data.progressions.order(:selection_id).order("date ASC").in_groups_of(7, false)[i].each_with_index do |e, index| %>
...
<% end %>
<% end %>
<% end %>
答案 0 :(得分:1)
确保以下语句未返回空数组
data.progressions.order(:selection_id).order("date ASC").in_groups_of(7, false)
通常情况下,如果存在记录,则in_groups_of
会返回array of arrays
,如果collection(ActiveRecord::Collection)
为空,则返回空array
如果它返回一个空数组,则最好使用presence
条件检查该数组的if
<% if (collection = data.progressions.order(:selection_id).order("date ASC").in_groups_of(7, false)[i]).present? %>
<% collection.each_with_index do |e, index| %>
...
<% end %>