Вопрос

В настоящее время у меня есть таблица, которая разделена на 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

Любые идеи, как это исправить? Спасибо,

Это было полезно?

Решение

Похоже, одна из ваших релизов в @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)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top