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?
Aquí hay dos enlaces:
El primero es un convertidor. ¡Puedes ingresar fragmentos de código html o erb y obtienes Haml!
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''}"}