Использование content_for и yield_content в Ramaze

Синатра имеет sinatra/contrib чтобы утверждать с этим, что эквивалентно в Ramaze? Кстати, я пользуюсь Erubis. Кроме того, быстрый поиск в Google показывает действительно старые страницы, которые требуют установки переменных в контроллерах и использования их в представлениях.

Изменить 1:

Взято из документации по драгоценным камням ( http://www.sinatrarb.com/contrib/content_for.html)

Вы вызываете content_for, обычно из представления, для захвата блока разметки с присвоением ему идентификатора:

# index.erb
<% content_for :some_key do %>
  <chunk of="html">...</chunk>
<% end %>

Затем вы вызываете yield_content с этим идентификатором, обычно из макета, для визуализации захваченного блока:

# layout.erb
<%= yield_content :some_key %>

1 ответ

Я не думаю, что Рамазе может сделать это изначально. Но вы можете легко сделать это вручную, написать помощник или даже заполнить экземпляр Hash.

Вы также можете посмотреть на частичные компоненты, если вам нужно визуализировать небольшие фрагменты HTML в виде циклов.

Вы также можете объединить render_partialхраните результаты в хэше и выводите их содержимое в макет.

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

Тривиальный пример здесь: https://github.com/Ramaze/ramaze/wiki/Adding-a-dynamic-sidebar-in-a-layout

Другие вопросы по тегам