2009-09-20 12 views
0

Ceci est mon code. J'ai un problème avec espaces. Je ne peux pas la génération appropriéesi autre erreur

- 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}" 

est produit ce

<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> 

Mais je veux un HTML

<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 entrée

devraient être inclus dans la condition

si la condition vrai

<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> 

si la condition fausse

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

Répondre

1

On dirait que vous devrez dupliquer l'entrée comme une première coupe:

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

Il faut être un moyen d'obtenir cette duplication, mais je ne peux pas penser à ce qu'il devrait être - une fonction d'aide qui prend un bloc, p Robablement.

+0

Ce n'est pas une solution propre :(est-ce une limitation de rails-haml gem? – aaalsubaie

2

Il suffit de déplacer le if dans le .daily-entry:

.daily-entry 
    - if @lastday.nil? && @lastday != item.created_at.strftime("%d %b %Y") 
    %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}" 
Questions connexes