sintax rails ruby-on-rails haml

ruby on rails - rails - ¿Cómo escribir si-condición en Haml?



haml sintax (5)

¿Cómo escribir las declaraciones if y if - else en Haml para una aplicación Ruby on Rails?



En Haml se utilizan dos operadores para el código rubí.

  • = se utiliza para el código ruby ​​que se evalúa y se inserta en el documento.

Ejemplo:

= form_for @user

  • - se utiliza para el código ruby ​​que se evalúa y NO se inserta en el documento.

Ejemplo:

- if @user.signed_in? = "Hi" - else = "Please sign in!"


En haml, use el - (guión) para indicar que una línea es código Ruby. Además, el nivel de sangría indica el nivel de bloque. Combine los dos para las declaraciones if / else.

- if signed_in? %li= link_to "Sign out", sign_out_path - else %li= link_to "Sign in", sign_in_path

es el mismo que el siguiente código en ERB:

<% if signed_in? %> <li><%= link_to "Sign out", sign_out_path %></li> <% else %> <li><%= link_to "Sign in", sign_in_path %></li> <% end %>


HAML está basado en sangría, y el analizador puede ser complicado. No necesitas usar "- end" en Haml. Use sangría en su lugar. En Haml, un bloque comienza cada vez que la sangría aumenta después de un comando de evaluación de Ruby. Termina cuando la sangría disminuye. Muestre si el bloque es el siguiente.

- if condition = something - else = something_else

Un ejemplo practico

- if current_user = link_to ''Logout'', logout_path - else = link_to ''Login'', login_path

Edit: Si solo quieres usar if condition entonces

- if current_user = link_to ''Logout'', logout_path


Si quieres poner condición dentro de tu etiqueta.

%section{:class => "#{''new-class'' if controller.action_name == ''index''}"}