[HAML] if и else в Ruby On Rails

интернет компьютеры программирование rails haml

Это мой код. Не могу правильно сгенерировать

- if @lastday.nil? && @lastday != item.created_at.strftime("%d %b %Y")
.daily-entry
%h1.date
=h item.created_at.strftime("%d")
%span
=h item.created_at.strftime("%b, %Y")
-else
.entry
%h1
= link_to item.title, "/items/#{item.id}"

Получается вот это

<div class='daily-entry'>
<h1 class='date'>
20
<span>
Sep, 2009
</span>
</h1>
</div>
<div class='entry'>
<h1>
<a href="/items/15">xcvxcvx</a>
</h1>
</div>

А надо вот так

<div class='daily-entry'>
<h1 class='date'>
20
<span>
Sep, 2009
</span>
</h1>
<div class='entry'>
<h1>
<a href="/items/15">xcvxcvx</a>
</h1>
</div>
</div>


.daily-entry
Должен входить в условие

Если условие тру, то должен генерить вот так

<div class='daily-entry'>
<h1 class='date'>
20
<span>
Sep, 2009
</span>
</h1>
<div class='entry'>
<h1>
<a href="/items/15">xcvxcvx</a>
</h1>
</div>
</div>

Ну а если условие не тру, то вот так

<div class='entry'>
<h1>
<a href="/items/15">xcvxcvx</a>
</h1>
</div>

Как этого добиться в HAML?
Ответы:
Поскольку совпадающий кусок html находится на разных уровнях вложенности, то для соблюдения принципа DRY, его лучше поместить в "partial".


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.