Jak pisać if
i if
- else
instrukcje w Haml dla aplikacji Ruby on Rails?
ruby-on-rails
haml
Thillai Narayanan
źródło
źródło
or
operator do warunku?W hamlu do kodu ruby używane są dwa operatory.
=
jest używany do kodu ruby, który jest oceniany i wstawiany do dokumentu.Przykład:
-
jest używany dla kodu ruby, który jest oceniany i NIE jest wstawiany do dokumentu.Przykład:
- if @user.signed_in? = "Hi" - else = "Please sign in!"
źródło
=
jeśli chcesz wyprowadzić zwykły ciąg, taki jakHi
lubPlease sign in
.=
jest konieczne tylko do oceny Rubiego, na przykład= "Hi, #{@user.name}"
W hamlu użyj
-
(myślnika), aby wskazać, że wiersz jest kodem Ruby. Ponadto poziom wcięcia wskazuje poziom bloku. Połącz oba dla instrukcji if / else.- if signed_in? %li= link_to "Sign out", sign_out_path - else %li= link_to "Sign in", sign_in_path
jest taki sam jak poniższy kod w ERB:
<% if signed_in? %> <li><%= link_to "Sign out", sign_out_path %></li> <% else %> <li><%= link_to "Sign in", sign_in_path %></li> <% end %>
źródło
Jeśli chcesz umieścić stan w swoim tagu
%section{:class => "#{'new-class' if controller.action_name == 'index'}"}
AKTUALIZACJA
Oto kolejna odmiana
%nav(class="navbar"){class: content_for?(:navbar_class) ? yield(:navbar_class) : nil}
źródło
Oto dwa linki:
Pierwszy to konwerter - możesz wpisać fragmenty html lub erb i otrzymasz haml!
źródło