Направляющие: использование “content_for” после соответствующего “урожая” в расположении

Я думаю, что это спросили прежде, но даже при том, что я искал 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 и судить меня на промежуточном программном обеспечении стойки. спасибо

11
задан thenoseman 8 January 2010 в 15:14
поделиться

2 ответа

Процесс визуализации сначала загружает и выполняет шаблон действия, затем украшает шаблон выбранным макетом. Макет отображается сверху вниз, поэтому вы не можете добавить больше содержимого в : head после того, как : head уже визуализирован.

Вам нужно изменить свою стратегию. Либо поместите фрагмент в партиал и прикрепите его к своим представлениям действий, либо используйте стратегию постобработки, такую ​​как модуль Rack / after_filter, чтобы напрямую изменить код HTML.

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

13
ответ дан 3 December 2019 в 05:58
поделиться

Не должно быть знака равенства в вашем content_for заявление. Это должно быть:

<% content_for :head, "Something that belongs in the head" %>

Если вы определяете контент в своих шаблонах и партиалах, он должен работать. Этот метод был описан в Railscast, эпизод 8 .

7
ответ дан 3 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: