Последствия вызова yield () дважды - PullRequest
1 голос
/ 06 мая 2010

Каковы последствия вызова yield() дважды? Например

- if yield :content_header
   yield :content_header
- else
  No Content Header

Это пожирает немного времени? Я не могу получить content_for? на работу: /

Ответы [ 3 ]

2 голосов
/ 07 мая 2010

Может быть, вы хотите использовать значение по умолчанию для вашего контента, если ничего не указано?

Райан Бейтс делает что-то подобное в своем коде (www.railscasts.com):

<title><%= h(yield(:title) || "Untitled") %></title>

, который дает заданный заголовок или «Без названия», если ничего не было предоставлено. Также сделайте несколько этих попыток.

1 голос
/ 07 мая 2010

Двойной вызов yield приводит к двойной оценке блока в текущей области.

0 голосов
/ 07 мая 2010

Я полагаю, что это будет запускать все дважды в блоке content_for, что не имеет особого смысла.

Есть ли причина, по которой вы не можете обработать условную логику внутри content_for?:

<% content_for :content_header do %>
  <% if some_condition %>
    <%= render_some_important_thing %>
  <% else %>
    <%= render_absence_of_thing %>
   <% end %>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...