Ruby on Rails 部分

示例

局部模板(partials)是一种将渲染过程分成更易于管理的块的方法。部分操作使您可以从模板中提取代码段以分离文件,并在整个模板中重复使用它们。

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

要将局部渲染为视图的一部分,请在视图内使用render方法:<%= render "form" %>

  • 注意,渲染时下划线被忽略

  • 如果部分文件位于其他文件夹中,则必须使用其路径进行渲染

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

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

当您需要重用完全相同的代码(DRY原理)时,部分函数也很有

例如,要重用<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路径中。下面的示例已被修改以说明此功能。

例如,这是通向全局部分的路径 app/views/application/_html_header.html.erb:

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