Вопрос

Я визуализирую частичный фрагмент в коллекции следующим образом:

<%= render :partial => 'issues/issue', :collection => @issues %>

Внутри партиала я хочу визуализировать


элемент, если он не последний в коллекции.Я мог бы, конечно, визуализировать частичный вариант вот так

<%= render :partial => 'issues/issue', :collection => @issues, :locals => {:issue_count => @issues.length } %>

затем помести это в мою частичную

<% unless issue_counter + 1 == issue_count %>
  <hr />
<% end %>

но я не хочу явно задавать локальный параметр при вызове рендеринга, и коллекция не всегда будет называться @issues, поэтому я не могу просто получить доступ к переменной экземпляра.Есть ли способ автоматически получить доступ к длине коллекции внутри частичного, чтобы определить, в какое место в коллекции попадает объект?Если этого еще нет, можно ли добавить это таким образом, чтобы я автоматически получал локальный номер Issue_count?Любая помощь в этом вопросе будет высоко оценена.

Спасибо,

Это было полезно?

Решение

Вы можете предоставить :spacer_template вариант для вашего render :partial => X, :collection => Y вызов.См. ActionController::Base документация для использования.

Вероятно, кажется неудобным указывать весь частичный файл для простого <hr /> элемент, но если пойти по этому пути, ваше намерение будет ясным, а часть элемента будет очищена от несвязанной разметки-разделителя.

Другие советы

Я думаю, вы можете добиться этого, если измените метод render_partial_collection.

В качестве примечания:Мне кажется, вместо этого вам следует использовать CSS в неупорядоченном списке:У меня такое ощущение, что вы вставляете HR разметки в стиль вместо того, чтобы использовать его для семантического разделения элементов в коллекции (в семантике разметки).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top