如何实现erb布局?

Geo*_*Geo 5 ruby templates ruby-on-rails

如何实现Rails ERB的布局?我试着查看源代码,但我无法确定它们在哪里/如何工作.

我特别感兴趣的是屈服部分如何工作,erb如何在​​模板中包含渲染视图.

我需要它的原因是,我可以将它用于代码生成,非Rails,非HTML相关(因为知道它们如何工作会很有趣)

Jes*_*ott 3

Rails 渲染由内而外,因此它会首先渲染 show.html.erb 并将其存储在变量中。然后它将渲染布局

在您看到的布局内

<%= yield %>
Run Code Online (Sandbox Code Playgroud)

它将被 shot.html.erb 文本替换

这也是下面的工作原理。在您的页面中,您可能会说:

<% content_for(:footer) do %>
  ...
<% end %>
Run Code Online (Sandbox Code Playgroud)

然后在布局中分层,您可以:

<%= yield(:footer) %>
Run Code Online (Sandbox Code Playgroud)

我喜欢将其视为变量的由内而外的设置。