Ruby on rails 未定义的方法`每个带有#索引的';对于nil:NilClass使用组

Ruby on rails 未定义的方法`每个带有#索引的';对于nil:NilClass使用组,ruby-on-rails,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 5,我得到以下错误: undefined method `each_with_index' for nil:NilClass The method .group() must contain arguments. 我已经针对我所面临的问题缩减了这个问题,它将我的工作范围中的“组”部分关联起来,就像我删除组选项时一样,它是有效的,但不是我想要的那样。有没有办法超越我循环中的零记录?我尝试了下面的try方法,但仍然存在相同的问题 我还尝试了组。尝试(:assessmentDate),但出现以下错误:

我得到以下错误:

undefined method `each_with_index' for nil:NilClass
The method .group() must contain arguments.
我已经针对我所面临的问题缩减了这个问题,它将我的工作范围中的“组”部分关联起来,就像我删除组选项时一样,它是有效的,但不是我想要的那样。有没有办法超越我循环中的零记录?我尝试了下面的
try
方法,但仍然存在相同的问题

我还尝试了
组。尝试(:assessmentDate)
,但出现以下错误:

undefined method `each_with_index' for nil:NilClass
The method .group() must contain arguments.
型号

class EstablishmentMethod < ApplicationRecord
  scope :assessment_date, -> { group('assessmentDate').group('treatment_selection_id').order(:treatment_selection_id).order("assessmentDate ASC") }
end
类建立方法{group('assessmentDate')。group('treatment_selection_id')。order(:treatment_selection_id)。order('assessmentDate ASC')}
结束
索引

<% data.establishmentMethods.order(:treatment_selection_id).try(:assessment_date).in_groups_of(3)[i].each_with_index do |e, index| %>
...
<% end %>

...

我认为这里不需要
[i]

 <% data.establishmentMethods.order(:treatment_selection_id).try(:assessment_date).in_groups_of(3).each_with_index do |e, index| %>
    ...
    <% end %>

...

我认为这里不需要
[i]

 <% data.establishmentMethods.order(:treatment_selection_id).try(:assessment_date).in_groups_of(3).each_with_index do |e, index| %>
    ...
    <% end %>

...

这似乎与[i]的值有关,您可能应该在此处使用嵌套循环(取决于您试图解决的问题)


这似乎与[i]的值有关,您可能应该在这里使用嵌套循环(取决于您试图解决的问题)

用于按给定数字对数组进行分组。您看到了这个错误,因为如果数组的长度小于3,这是正常的。例如:

irb(main):003:0> %w(1 2).in_groups_of(3)
=> [["1", "2", nil]]
irb(main):003:0> gr = %w(1 2).in_groups_of(3)
=> [["1", "2", nil]]
irb(main):004:0> gr[3]
=> nil
如果
i
是一个索引号,那么您正在迭代一个类似
[“1”,“2”,nil]
的组。但如果
i
不在数组的索引范围内,则将选择
nil
对象。例如:

irb(main):003:0> %w(1 2).in_groups_of(3)
=> [["1", "2", nil]]
irb(main):003:0> gr = %w(1 2).in_groups_of(3)
=> [["1", "2", nil]]
irb(main):004:0> gr[3]
=> nil
然后,当使用
每个带有索引的\u

用于按给定数字对数组进行分组时,您将看到以下错误。您看到了这个错误,因为如果数组的长度小于3,这是正常的。例如:

irb(main):003:0> %w(1 2).in_groups_of(3)
=> [["1", "2", nil]]
irb(main):003:0> gr = %w(1 2).in_groups_of(3)
=> [["1", "2", nil]]
irb(main):004:0> gr[3]
=> nil
如果
i
是一个索引号,那么您正在迭代一个类似
[“1”,“2”,nil]
的组。但如果
i
不在数组的索引范围内,则将选择
nil
对象。例如:

irb(main):003:0> %w(1 2).in_groups_of(3)
=> [["1", "2", nil]]
irb(main):003:0> gr = %w(1 2).in_groups_of(3)
=> [["1", "2", nil]]
irb(main):004:0> gr[3]
=> nil

然后,当使用
每个带有索引的
时,您将看到以下错误
数据中的
i
是什么。建立方法。顺序(:治疗\选择\ id)。尝试(:评估\日期)。在(3)个组中的
i
?最有可能的结果是
nil
。在
数据.建立方法.顺序(:治疗\选择\ id).尝试(:评估\日期).在第(3)组中的
i
?这很可能计算为
nil
。就是这样。救了我一天就这样。救了我一天