2010-11-05 9 views
3

Comment pouvez-vous faire cela sans répéter le code après le .text.error et .text?Haml si d'autres imbrications


    -if f.object.errors.any? 
     .text.error 
     = f.label :email 
     = f.text_field :email 
     %p#foo= "Escriba el e-mail" 
     = render 'shared/error_messages', :object => f.object, :param => :email 
    -else 
     .text 
     = f.label :email 
     = f.text_field :email 
     %p#foo= "Escriba el e-mail" 
     = render 'shared/error_messages', :object => f.object, :param => :email 

    -if f.object.errors.any? 
     .text.error 
     = f.label :password 
     = f.password_field :password 
     = render 'shared/error_messages', :object => f.object, :param => :password 
    -else 
     .text.error 
     = f.label :password 
     = f.password_field :password 
     = render 'shared/error_messages', :object => f.object, :param => :password 

Répondre

5

Essayez

-["email", "password"].each do |param| 
    .text{:class => f.object.errors.any? ? "error" : nil} 
    = f.label param.to_sym 
    = f.text_field param.to_sym 
    %p#foo= "Escriba el #{param}" 
    = render 'shared/error_messages', :object => f.object, :param => param.to_sym