2010-11-01 8 views
0

J'ai le bloc suivant:Haml: Conditionnel avec les éléments de la liste?

#control-panel 
    %h3 
    = "Manage" 
    %ul.left-panel 
    %li{:class => 'my-profile'} 
     = link_to 'Profile', edit_user_path(current_user) 
    %li{:class => 'my-account'} 
     = link_to 'Account', edit_account_user_path(current_user) 
    -if @user && current_user.parent? 
    %li{:class => 'my-blog'} 
     = link_to 'Blog', manage_user_posts_path(current_user) 

Le problème est si elle est conditionnelle à ce dernier élément de la liste ... faire comme ça rend une étiquette </ul> fermée et puis un autre élément de la liste. Ce dont j'ai besoin, c'est que le dernier élément de la liste fasse partie de la liste non ordonnée s'il répond au conditionnel.

Comment faire cela?

Répondre

2

Indente le -if et le% li subséquent afin qu'ils soient dans la même colonne que les éléments% li ci-dessus.

%ul.left-panel 
    %li{:class => 'my-profile'} 
    = link_to 'Profile', edit_user_path(current_user) 
    %li{:class => 'my-account'} 
    = link_to 'Account', edit_account_user_path(current_user) 
    -if @user && current_user.parent? 
    %li{:class => 'my-blog'} 
     = link_to 'Blog', manage_user_posts_path(current_user) 

Aussi, simplement regarder votre code, je suppose que le visiteur est déjà un @user, si elles peuvent accéder aux liens Profil et compte, de sorte que le cas @user peut-être redondant?