摆脱Ruby中的Nil类错误

时间:2010-12-07 03:11:09

标签: 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.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

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

1 个答案:

答案 0 :(得分:4)

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

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

Array#compact会返回原始数组的副本,并删除nil个元素。

但是,我强烈建议您首先调查其中一个是否为零。

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

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

in_groups_of只是each_slice

的ActiveSupport别名
相关问题