Прямо сейчас, если я перейду к действию index имеющейся у меня модели, я не покажу базовую таблицу данных, которую rails генерирует для меня, если в базе данных нет существующих записей. Я делаю что-то вроде:
<% 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 %>
Это работает локально. Однако, когда я помещаю свое приложение в heroku, это вызывает ошибку 500, и журнал говорит:
ActionView::TemplateError (undefined method 'count' for []:Array) on line ...
Так что я изменил его на .length
, и он отлично работает. Может кто-нибудь сказать мне, почему это? Кто-то сказал мне, что это было избыточно, и рельсы избавились от .count
, но я понимаю, что .length
- это функция Array
, которая сообщает вам, сколько элементов в Array
и .count
было ActiveRecord
метод определения, сколько элементов в массиве было фактическими записями в базе данных.
Может ли кто-нибудь пролить свет на это для меня?