【问题标题】:How are erb layouts implemented?erb 布局是如何实现的?
【发布时间】:2011-05-19 15:16:24
【问题描述】:

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

我对 yield 部分的工作原理以及 erb 如何在模板中包含渲染视图特别感兴趣。

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

【问题讨论】:

  • 是的。在那个页面上我应该注意什么吗?
  • 该页面从高层次上解释了布局系统。您是在寻找更多关于产量和传递块如何工作的信息,还是对 ActionView 如何呈现和组合多个模板的内部机制特别感兴趣?
  • 是的,渲染和组合部分是我感兴趣的部分。

标签: ruby-on-rails ruby templates


【解决方案1】:

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

在你看到的布局内

​​>
<%= yield %>

将替换为 shot.html.erb 文本

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

<% content_for(:footer) do %>
  ...
<% end %>

然后你可以在布局中分层:

<%= yield(:footer) %>

我喜欢把它想象成一个由内而外的变量设置。

【讨论】:

  • 内向外渲染的部分是合乎逻辑的。那么,在某些时候,它归结为一个 sub/gsub 在 yield 之后,带有视图的文本?
  • 马上, 语法执行, 语法输出。
猜你喜欢
  • 1970-01-01
  • 2022-01-19
  • 2011-11-06
  • 2013-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多