諧音
部分模板(部分)是一種將渲染過程分解為更易於管理的塊的方法。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' %>