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
。就是这样。救了我一天就这样。救了我一天