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'%>