Se débarrasser d'erreur Nil classe en Ruby
-
09-10-2019 - |
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,
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
)