Ответ 1
Технически, yield
также вызывает блок в этом контексте. Тем не менее, этот блок - это представление, которое вашему контроллеру было предложено выполнить.
Например, скажем, у вас есть StaticContentController
, на котором есть действие index
, которое представляло вашу домашнюю страницу. Если маршруты настроены правильно, вы заходите на свою домашнюю страницу. Rails загрузит файл макета в views/layouts
, который подходит для этого контроллера (application.html.haml
, если вы не переопределите это с помощью макета для своего контроллера). Когда он достигает команды yield
, он вставляет представление в views/static_content/index.html.haml
в том месте, где yield
находится внутри вашего макета. Затем он загружает остальную часть вашего файла макета.