У меня есть этот фрагмент в макете:
<div class="yui-g" style="min-width: 760px">
<!-- top row -->
<%= yield :top_row %>
</div>
Если ничто не вызывает content_for :top_row
, тогда у меня остался пустой прямоугольник с стилизацией на странице.Правильно было бы изменить стиль макета (и всего сайта), но сейчас это не вариант (унаследованный долг и более насущные требования).Есть ли способ обернуть div в некоторый код, который проверяет, действительно ли доходность дает что-то, и не отображать его, если так?
ура, макс.
РЕДАКТИРОВАТЬ - этоrails 2.2.2 project btw.
EDIT 2
@ arnep предложил следующее, что работает:
<% content = yield :top_row %>
<% unless content.blank? %>
<div class="yui-g" style="min-width: 760px">
<%= content %>
</div>
<% end %>
Что я хотел бы сделать дальше, это обернутьэто в помощнике, который я могу использовать следующим образом:
<% yield_if(:top_row) do |content| %>
<div class="yui-g" style="min-width: 760px">
<%= content %>
</div>
<% end %>
Я борюсь с этим помощником, так как он включает в себя уступку в блоке, переданном методу И уступку содержимому в: top_row.Вот то, что я попробовал, но это не работает - он отображает всю страницу в возвращенную строку.Я думаю, что я получил это как-то задом наперед.