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変数のリリースの1つはですnil

あなたはこれを行うことができます: @releases.compact.in_groups_of(4).each do ...

Array#compactnil要素が削除された元の配列のコピーを返します。

ただし、そもそもなぜそのうちの1つがゼロであるのかを調査することを強くお勧めします。

これはグループ化の問題ではありません。これがグループ化の仕組みであるためです。

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 に答える