0

我目前有一个分为 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 整除的条目时,我都会收到错误消息:undefined method version' for nil:NilClass

任何想法如何解决这一问题?谢谢,

4

1 回答 1

4

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

你可以这样做: @releases.compact.in_groups_of(4).each do ...

Array#compactnil返回删除元素的原始数组的副本。

但是,我强烈建议您首先调查为什么其中一个是 nil 。

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

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

in_groups_of只是 ActiveSupport 的别名each_slice

于 2010-12-07T03:14:39.017 回答