Ruby on rails 消除Ruby中的Nil类错误

Ruby on rails 消除Ruby中的Nil类错误,ruby-on-rails,multiple-columns,Ruby On Rails,Multiple Columns,我目前有一个表,它被分成4列,如下所示: <table id="customers"> <tr> <th><em class='require'></em><%= Release.columns_hash['version'].human_name -%></th> <th><em class='require'></em><%= Release.colum

我目前有一个表,它被分成4列,如下所示:

  <table id="customers">
<tr>
  <th><em class='require'></em><%= Release.columns_hash['version'].human_name  -%></th>
  <th><em class='require'></em><%= Release.columns_hash['version'].human_name  -%></th>
  <th><em class='require'></em><%= Release.columns_hash['version'].human_name  -%></th>
  <th><em class='require'></em><%= Release.columns_hash['version'].human_name  -%></th>
</tr>
<% @releases.in_groups_of(4).each do |releasesplit| %>
<tr>
   <% releasesplit.each do |release| %>
   <td align="center"><%= release.version %></td>
   <% end %>
</tr>
<% end %>

但是问题是,每当我向表中添加另一个不能被4整除的条目时,我都会得到错误:nil:NilClass的
undefined method version'

有没有办法解决这个问题?
谢谢,

您在
@releases
中的一个版本的变量是
nil

您可以这样做:
@releases.compact.分为(4)组,每个组都有…

Array#compact
返回删除了
nil
元素的原始数组的副本

然而,我强烈建议您首先调查其中一个为零的原因

这不是分组的问题,因为这是分组的工作方式:

irb(main):002:0> [1,2,3].each_slice(2) {|group| puts group.inspect}
[1, 2]
[3]
=> nil

的组中的
只是
每个片的一个ActiveSupport别名)

似乎
@releases
中的一个版本变量是
nil

您可以这样做:
@releases.compact.分为(4)组,每个组都有…

Array#compact
返回删除了
nil
元素的原始数组的副本

然而,我强烈建议您首先调查其中一个为零的原因

这不是分组的问题,因为这是分组的工作方式:

irb(main):002:0> [1,2,3].each_slice(2) {|group| puts group.inspect}
[1, 2]
[3]
=> nil

的组中的
只是
每个片的一个ActiveSupport别名)

我不知道
compact
。美好的我没有nil元素,只是数组有30个值,当ruby试图分成4组时,28/4=7,所以每列7个值。但当它到达数组编号31时,它尝试获取该值,但尚未创建该值,因此返回nil。但它是为我做的。谢谢:)这不是团队的工作方式。我很确定你有一个零元素。我已经更新了我的答案。我不知道
compact
。美好的我没有nil元素,只是数组有30个值,当ruby试图分成4组时,28/4=7,所以每列7个值。但当它到达数组编号31时,它尝试获取该值,但尚未创建该值,因此返回nil。但它是为我做的。谢谢:)这不是团队的工作方式。我很确定你有一个零元素。我已经更新了我的答案。