Я хочу сделать "content_for" *дважды* для одного и того же yield-блока -> как?

У меня есть несколько разделов, которые могут быть или не быть включены в данный макет... и они часто имеют javascript, необходимый только для содержимого этого раздела... но я хочу, чтобы javascript загружался в голове.

Поэтому я обычно имею что-то вроде:

<html>
  <head>
    <title><%= @page_title %></title>
    <%= yield :head %>
  </head>
...etc

и в части 1:

<% content_for :head do %>
      <%= javascript_tag 'partial_one_js' %>
<% end %>

и в части 2:

<% content_for :head do %>
      <%= javascript_tag 'partial_two_js' %>
<% end %>

Но то, что определено вторым, сдувает содержимое, идущее от первого.

Нет возможности объединить частицы.

Я хотел бы иметь возможность объединить их, не делая ничего совершенно халтурного. Это также должно работать, если присутствует только один или ни одного.

... и я бы особенно предпочел избежать:

<html>
  <head>
    <title><%= @page_title %></title>
    <%= yield :head_one %>
    <%= yield :head_two %>
  </head>

... ick

Итак... у кого-нибудь есть решение?

10
задан Taryn East 24 October 2011 в 16:47
поделиться