¿Cómo escribir declaraciones if
y if
- else
en Haml para una aplicación Ruby on Rails?
ruby-on-rails
haml
Thillai Narayanan
fuente
fuente
or
operador a la condición?En haml se utilizan dos operadores para el código ruby.
=
se utiliza para el código ruby que se evalúa y se inserta en el documento.Ejemplo:
-
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!"
fuente
=
si desea generar una cadena simple comoHi
oPlease sign in
.=
solo es necesario para evaluar Ruby, como= "Hi, #{@user.name}"
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 las dos declaraciones de 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 %>
fuente
Si quieres poner condición dentro de tu etiqueta
%section{:class => "#{'new-class' if controller.action_name == 'index'}"}
ACTUALIZAR
Aquí hay otra variación
%nav(class="navbar"){class: content_for?(:navbar_class) ? yield(:navbar_class) : nil}
fuente
Aquí hay dos enlaces:
El primero es un convertidor: puede ingresar html o erb snippets y obtendrá haml
fuente