Fire.app 機能應用教學

在特定頁面變更已套用 Layout 部分的內容(進階)

目前的頁面中,除了首頁之外都套用了同樣的側欄。但依據先前的範例網站, Documents 頁面側欄的 AD Words 部分應該要更換成顯示提供教育訓練的聯絡方式,此時便需要使用 content_for 這個 Helper。關於 content_for 的詳細資料請參考文件: Template Helpers

若要達到上述需求,我們必須改變單一頁面的側欄內容,但是側欄的部分已經包含在 Layout 中,所以目前除了套用指定 Layout 的首頁以外所有頁面的側欄都是相同的。為了改變單頁的側欄內容我們需要改寫 Layout 中側欄的 <div class="ad"> 部分,將:

<div class="ad">
    Ad Words
</div>

改成:

<div class="ad">
    <% if content_for? :sp_ad %>
        <%= yield :sp_ad %>
    <% else %>
        Ad Words
    <% end %>
</div>

上面的程式碼可以讓 <div class="ad"> 區塊中預設顯示共同的內容 Ad Words ,當套用的頁面中有設定 content_for :sp_ad 的段落時則會顯示設定的內容。

因此我們在 Documents 的頁面 documents.html.erb 的內容最前方加上:

<% content_for :sp_ad do %>
    If you need education support, please mail to:<br />
    <a href="#"><%= lorem_email %></a>
<% end %>

上述程式碼指定了 Documents 頁面中 content_for :sp_ad 的內容,因此現在只要切換到瀏覽器便能看見該頁面中的側欄和其他頁面不同,顯示了提供教育訓練的聯絡方式。