Frage

Im Moment habe ich eine Tabelle, die aufgeteilt in vier Spalten als solche ist:

  <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 %>

Doch das Problem ist, wenn ich einen weiteren Eintrag in die Tabelle, die durch 4 teilbar ist ich den Fehler: undefined method version' for nil:NilClass

Alle Ideen, wie dieses Problem beheben? Danke,

War es hilfreich?

Lösung

Es scheint wie eine Ihrer Veröffentlichungen in @releases Variable nil.

Sie können dies tun: @releases.compact.in_groups_of(4).each do ...

Array#compact gibt eine Kopie des ursprünglichen Arrays mit nil Elementen entfernt.

Ich schlage vor, jedoch stark Sie untersuchen, warum einer von denen Null an erster Stelle ist.

Das ist nicht die Frage der Gruppierung, da dies ist, wie funktioniert die Gruppierung:

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

(in_groups_of ist nur ein Alias ??für Active each_slice)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top