счетчик сбора в рельсах - PullRequest
4 голосов
/ 15 июля 2009

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

<%= 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 %>

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

Thx,

-C

Ответы [ 2 ]

4 голосов
/ 24 июля 2009

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

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

0 голосов
/ 15 июля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...