如果我有一個<%= yield %>
標籤然後我所有的觀點呈現在佈局相同的地方。我可以爲不同的視圖使用不同的<%= yield %>
標籤嗎?我如何做到這一點?由於Ruby on Rails的:屈服在一個特定的地方具體看法佈局
回答
調查ActionView::Helpers::CaptureHelper。你可以做這樣的事情在你的看法:
<% content_for :sidebar do %>
<!-- sidebar content specific to this page -->
<% end %>
這將運行content_for塊內模板,但不會輸出作爲常規模板yield
緩衝的一部分,它會被存儲在一個單獨的緩衝區後。再後來,包括佈局,可以使用yield :content_name
輸出內容:
<div class="content">
<%= yield %>
</div>
<div class="sidebar">
<%= yield :sidebar %>
</div>
因此,在某種意義上,你可以有不同的yield
S代表不同的看法,你只要給不同的內容的名稱與content_for
的意見,並與佈局相同名稱產生了。
考慮你的情況下,如果你想在不同的地方不同的看法。假設您有三個面板,panel1,panel2和panel3。你可以在你的佈局做到這一點:
<div id="panel1"><%= yield :panel1 %></div>
<div id="panel2"><%= yield :panel2 %></div>
<div id="panel3"><%= yield :panel3 %></div>
你甚至都不需要包括普通<%= yield %>
,如果你不想。然後,在你的意見,你可以選擇通過與周圍適當content_for
整個視圖中顯示其內容面板。例如,你的一個觀點可能會改變這樣的:
<% content_for :panel2 do %>
<!-- Your View -->
<% end %>
要在面板顯示2.另外一個可能被用於面板3,如下所示:
<% content_for :panel3 do %>
<!-- Your View -->
<% end %>
這對頁面標題非常有用,您希望在其中定製大多數Egbert頁面,但最終必須在每個頁面中指定它。這使得它不適用於僅在身份驗證頁面上隱藏側邊欄的內容。 – ahnbizcad
是的,你可以有多個<%= yield %>
標籤。您可以在基本視圖中指定每個yield
標籤的名稱。
<%= yield :head %>
<%= yield :footer %>
然後使用content_for
標籤在你的個人意見。
<% content_for :head do %>
<%= stylesheet_link_tag 'custom' %>
<% end %>
您可以使用收益和內容:
For example:
<%= yield :head %>
<% content_for :head do %>
<title>A simple page</title>
<% end %>
- 1. ruby on rails全局方法
- 2. 重定向各個擊破url到具體的方法 - 在Ruby on Rails的
- 3. Ruby on Rails - 渲染布局
- 4. Ruby on rails - SQL方法的地方
- 5. Ruby on Rails的:在我看來,部分未定義的方法
- 6. Ruby on Rails簡單的網站佈局
- 7. ActiveRecord'destroy'方法在Ruby on Rails中返回一個布爾值?
- 8. Ruby on Rails的未定義的方法
- 9. 指定某些控制器的佈局在Ruby on Rails的
- 10. WYSIHAT'resonds_to_parent「未定義的方法 - Ruby on Rails
- 11. Ruby on Rails link_to未定義的方法
- 12. Ruby on Rails錯誤:未定義的局部變量或方法
- 13. Ruby on Rails的每個方法
- 14. Ruby on Rails的:未定義的方法「地圖」爲#<String>
- 15. 使用Ruby on Rails預加載佈局
- 16. Ruby on Rails佈局和渲染
- 17. Ruby On Rails ERB CSS佈局問題
- 18. Ruby on Rails - 佈局和鏈接
- 19. 在特定時間調用模型方法(Ruby on Rails)
- 20. Fields_for方法在Ruby on Rails的
- 21. 如何從特定的Ruby on Rails頁面中刪除應用程序佈局?
- 22. Ruby on Rails的full_messages特定屬性
- 23. Ruby on Rails私有方法?
- 24. Ruby on rails where()用方法
- 25. Ruby on Rails,方法undefined
- 26. Ruby on Rails的 - 未定義的方法 - Rails的3.2.13
- 27. 一個存放文件的地方(Ruby on Rails)
- 28. Ruby on Rails的:獲取對一個特定關聯和條件
- 29. Ruby on Rails - 收集具有相同特定值的散列
- 30. 在Ruby on Rails中,有一種方法可以查看模型的屬性
它無論哪個文件夾內容的視圖是嗎?視圖來自哪個控制器呢? – holaSenor