Заголовок, возможно, не описал мой вопрос должным образом, я не был уверен, как объяснить, что я делаю без визуальных эффектов.
У меня есть набор препятствий, каждый из которых связан с сюжетом (на графике много препятствий) . Каждый сюжет связан с разработкой (разработка имеет много участков) . Каждая разработка связана с пользователем (у пользователя много разработок) .
Я хочу вернуть список ошибок, которые имеют отношение к каждому разработчику.
В настоящее время в моем контроллере snags есть следующее:
def index
@developments = Development.accessible_by(current_ability)
.where(enable_snagging: true)
@developments.each do |development|
@plots = development.plots
get_snags(@plots)
end
end
private
def get_snags(plots)
plots.each do |plot|
@plot_snags = Snag.where(plot_id: plot.id)
end
end
А на мой взгляд:
<table class="record-list snags">
<thead>
<tr>
<th><%= sortable(@snags, :id) %></th>
</tr>
</thead>
<tbody>
<% @snags.each do |snag| %>
<tr data-snag="<%= snag.id %>">
<td><%= snag.id %></td>
</tr>
<% end %>
</tbody>
</table>
Первоначально у меня вместо контроллера @plot_snags в контроллере была @snags, но, конечно, она возвращала только последний набор ошибок, а не все.
Если я попытаюсь создать и вернуть массив @snags и добавить к нему каждый объект в @plot_snags (или любой другой вариант объявления @snags как массива), я получу:
undefined method `human_attribute_name' for #<Array:0x007ff5334861d0>
Я не могу понять, что я делаю здесь неправильно.
UPDATE
Сегодня я снова посмотрел на нее свежим взглядом - я не мог понять, почему мой стол присоединения не заполнен, сегодня я еще раз посмотрю на него, чтобы все заработало «правильно» - оказывается, ошибка Я получал из-за интерфейса Sortable, который я пытался реализовать в представлении. После того, как я удалил Sortable, я смог заполнить массив snags и получить вывод, на который надеялся.