谐音
部分模板(部分)是一种将渲染过程分解为更易于管理的块的方法。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' %>