En ce moment, si je vais à l'action d'index d'un modèle que j'ai, je ne montre pas le tableau de données de base que les rails génère pour moi s'il n'y a pas enregistrements dans la base de données. Je fais quelque chose comme:Array.count fonctionne très bien localement mais casse sur heroku
<% if @my_records.count > 0 %>
<table>
<tr>
<th>...</th>
<th>...</th>
<th>...</th>
<th>etc</th>
</tr>
<% @my_records.each do |my_record| %>
<tr>
<td><%=h my_record.etc %></td>
<td><%=h my_record.etc %></td>
<td><%=h my_record.etc %></td>
<td><%=h my_record.etc %></td>
</tr>
<% end %>
</table>
<% end %>
Ceci fonctionne localement. Cependant, quand je pousse mon application à Heroku, cela provoque une erreur 500 et le journal dit: ActionView::TemplateError (undefined method 'count' for []:Array) on line ...
Je changer à .length
et il fonctionne très bien. Quelqu'un peut-il me dire pourquoi? Quelqu'un m'a dit que ceux-ci étaient redondants et que les rails se sont débarrassés de .count
, mais d'après ce que j'ai compris, .length
est une fonction Array
qui indique le nombre d'éléments dans le Array
et .count
qui était une méthode ActiveRecord
pour déterminer combien d'éléments du tableau étaient réels enregistrements dans la base de données.
Quelqu'un peut-il nous éclairer à ce sujet?
Hey merci pour la réponse rapide et vous avez raison! Il s'avère que je peux migrer mon application (fonctionnant sur Heroku Aspen) vers Heroku Bamboo (qui supporte les versions 1.8.7 et 1.9.1). Voir: http://docs.heroku.com/bamboo. – DJTripleThreat