Подтвердить что ты не робот

Выход и обеспечить() внутри шаблона

Может ли кто-нибудь дать ясное объяснение тому, как provide() работает внутри представления? Я прочитал официальную документацию, но меня это действительно беспокоит, если я определяю в начале шаблона

<% provide(:title, 'Help') %>

а затем позже у меня есть эта строка кода

<%= yield :title %> 

что на самом деле происходит в фоновом режиме? Я знаю, что выход должен вызвать код. Что будет в этом контексте блоком кода?

4b9b3361

Ответ 1

provide хранит блок разметки в идентификаторе для последующего использования. В этом случае "Справка" в символе: заголовок. Предоставление заключено в <% %>, чтобы указать, что он выполняет этот код и не распечатывается в представлении.

yield в этом случае просто плюет, что блокирует отступ. Выход заключен в <%= %>, чтобы указать, что он распечатывается в виде.

Подумайте об этом как о настройке переменной и распечатке переменной.

Смотрите: http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-provide Чтобы получить больше информации. Обратите внимание, что provide действительно является оберткой для content_for, так что там, где хороший материал находится в этой ссылке.