Question

I ai actuellement une table qui est divisée en 4 colonnes en tant que tels:

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

Cependant, le problème est à chaque fois que j'ajouter une autre entrée à la table qui est non divisible par 4 Je reçois l'erreur: undefined method version' for nil:NilClass

Toutes les idées comment résoudre ce problème? Merci,

Était-ce utile?

La solution

Il semble que l'un de vos communiqués dans la variable @releases est nil.

Vous pouvez faire ceci: @releases.compact.in_groups_of(4).each do ...

Array#compact renvoie une copie du tableau d'origine avec des éléments de nil enlevés.

Cependant, je vous suggère fortement de déterminer pourquoi un d'entre eux est nulle en premier lieu.

Ce n'est pas la question du regroupement, puisque c'est ainsi le regroupement des œuvres:

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

(in_groups_of est juste un alias pour ActiveSupport each_slice)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top