Я думаю, что это спросили прежде, но даже при том, что я искал Google, я не предложил решение.
Таким образом, это - то, что я пытаюсь сделать в направляющих 2.3.5:
layouts/application.html.erb:
<html>
<head>
... some other stuff
<%= yield :head %>
</head>
<body>
<% content_for :head, "something that belongs in the head" %>
</body>
</html>
Заметьте урожай перед content_for.
Я знаю, что направляющие - по умолчанию - не позволяют содержание: голова, которая будет определена после урожая, использовалась - имеет смысл.
Я даже пытался сцепиться в шаблонный процесс рендеринга, но никакой успех до сих пор.
Таким образом, моя цель состоит в том, чтобы быть в состоянии определить content_for внутри partials/templates и задержать "урожай" так или иначе и выполняемый непосредственно перед тем, как ответ, отправляют к браузеру.
Кто-то предложил решение?
Поздравления и спасибо, Frank
Обновление я буду идти с идеей weppos и судить меня на промежуточном программном обеспечении стойки. спасибо
Процесс визуализации сначала загружает и выполняет шаблон действия, затем украшает шаблон выбранным макетом.
Макет отображается сверху вниз, поэтому вы не можете добавить больше содержимого в : head
после того, как : head
уже визуализирован.
Вам нужно изменить свою стратегию. Либо поместите фрагмент в партиал и прикрепите его к своим представлениям действий, либо используйте стратегию постобработки, такую как модуль Rack / after_filter, чтобы напрямую изменить код HTML.
Я бы, наверное, попытался найти лучшее решение, основанное на том, что мне действительно нужно. Если вы столкнулись с этой проблемой, скорее всего, ошибка где-то еще, возможно, в архитектуре приложения.
Не должно быть знака равенства в вашем content_for
заявление. Это должно быть:
<% content_for :head, "Something that belongs in the head" %>
Если вы определяете контент в своих шаблонах и партиалах, он должен работать. Этот метод был описан в Railscast, эпизод 8 .