partial 的使用
Partial
Partial 也是一個很常用的功能,翻成白話文就是 “借畫面”
我們只要在想要借畫面的頁面中使用 render 的方法就可以了!但這邊的慣例要記住:要被借畫面的檔案前面需要有底線”_“的名字,否則不會成功,來看看下面的範例
目前有兩個檔案: index.html.erb 跟 _form.html.erb 都在 views/qoos 的路徑底下
#index.html.erb
<%= render "form" %>
#_form.html.erb
<h1>這是 form 的畫面喔!</h1>
最後 index.html.erb 的畫面就會渲染出 _form.html.erb 的畫面

如果要渲染不同資料夾的檔案,只要把路徑寫清楚即可
<%= render "shared/form" %>
上面的例子中會渲染 views/shared/_form.html.erb. 的畫面
同時使用 layout
我們在渲染 partial 的時候還能同時渲染 layout 喔! 但這時候需要把 partial 跟 layout 分別是哪份文件都標明清楚,可以看看下面的例子
# index.gtml.erb
<%= render partial: "form" , layout: "super" %>
# _form.html.erb
<h1>這是 form 的畫面喔!</h1>
# _super.html.erb
<h1>這是 super 的畫面喔</h1>
<%= yield %>
產生的畫面如下
這邊要特別注意注意兩點:
- 這邊的 layout 也是要在同一個資料夾,檔案名稱有底線的檔案喔,而不是在 layout 資料夾中的檔案!
- 別忘記 application 的 layout 還是會渲染出來,畫面中 application layout 那一行就是寫在 layouts/application.html.erb 的內容
接下來會介紹如果 partial 中需要變數的話要怎麼傳給他,敬請期待!