諧音

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