谐音

部分模板(部分)是一种将渲染过程分解为更易于管理的块的方法。Partials 允许你从模板中提取代码片段以分离文件,并在整个模板中重复使用它们。

创建局部文件,请创建一个以下划线开头的新文件:_form.html.erb

渲染的部分作为视图的一部分,使用在视图中呈现方法:<%= render "form" %>

  • 请注意,渲染时会忽略下划线
  • 如果位于不同的文件夹中,则必须使用其路径呈现部分

要将变量作为局部变量传递给 partial,请使用以下表示法:

<%= render :partial => 'form', locals: { post: @post } %>

当你需要重用完全相同的代码( DRY 哲学 ) 时,Partial 也很有

例如,要重用 <head> 代码,创建一个名为 _html_header.html.erb 的部分,输入要重复使用的 <head> 代码,并在需要时通过:<%= render 'html_header' %> 渲染部分代码。

对象部分

响应 to_partial_path 的对象也可以渲染,如 <%= render @post %>。默认情况下,对于 ActiveRecord 模型,这将类似于 posts/post,因此通过实际渲染 @post,将渲染文件 views/posts/_post.html.erb

将自动分配名为 post 的本地。最后,<%= render @post %><%= render 'posts/post', post: @post %> 的简称。

还可以提供响应 to_partial_path 的对象集合,例如 <%= render @posts %>。每个项目将连续呈现。

全局偏爱

要创建可在任何地方使用而不引用其精确路径的全局部分,部分必须位于 views/application 路径中。上面的示例已在下面进行了修改,以说明此功能。

例如,这是一个全局部分的路径 19

要在任何地方渲染此全局部分,请使用 <%= render 'html_header' %>