Використання yield в шаблонах:
- шаблон
<html>
<head>
<%= yield :head %>
</head>
<body>
<%= yield %>
</body>
</html>
- вюха
<% content_for :head do %>
<title>A simple page</title> // в yield :head
<% end %>
<p>Hello, Rails!</p> // в yield
content_for?(:head) - функція для перевірки чи є щось для :head
Використання пратіалів:
- рендер /view/partial/_menu
<%= render "partial/menu" %>
- рендер /view/<controller>/_menu
<%= render "menu" %>
- з використанням шаблону для партіала _menu в _template
<%= render :partial => "menu", :layout => "template" %>
- для передачі параметрів у партіал
<%= render :partial => "menu", :locals => { :key => @value } %>
- змінна буде доступна в партіалі під ім'ям партіала без підкреслювання
<%= render :partial => "customer", :object => @new_customer %>
скорочений варіант попереднього, @customer - модель, буде використано _customer, і модель буде доступна в партіалі <%= render @customer %>
- для рендеру клекції, обєкт буде доступний по імені партіала без підкреслювання
<%= render :partial => "product", :collection => @colection %>
скорочений варіант <%= render @colection %> якщо в змінній колекції передати різнорідні моделі то буде викоритовуватись партіал відповідно до імені моделі.