Как написать if
и if
- else
заявления в Haml для в Ruby On Rails приложения?
ruby-on-rails
haml
Тиллай Нараянан
источник
источник
or
оператора в условие?В haml для кода ruby используются два оператора.
=
используется для кода рубина, который оценивается и вставляется в документ.Пример:
-
используется для кода рубина, который оценивается и НЕ вставляется в документ.Пример:
- if @user.signed_in? = "Hi" - else = "Please sign in!"
источник
=
выводить простую строку, напримерHi
илиPlease sign in
.=
нужно только для оценки Ruby, вроде= "Hi, #{@user.name}"
В haml используйте
-
(тире), чтобы указать, что строка является кодом Ruby. Кроме того, уровень отступа указывает уровень блока. Объедините два для операторов if / else.- if signed_in? %li= link_to "Sign out", sign_out_path - else %li= link_to "Sign in", sign_in_path
такой же, как следующий код в ERB:
<% if signed_in? %> <li><%= link_to "Sign out", sign_out_path %></li> <% else %> <li><%= link_to "Sign in", sign_in_path %></li> <% end %>
источник
Если вы хотите поместить условие в свой тег
%section{:class => "#{'new-class' if controller.action_name == 'index'}"}
ОБНОВИТЬ
Вот еще одна вариация
%nav(class="navbar"){class: content_for?(:navbar_class) ? yield(:navbar_class) : nil}
источник
Вот две ссылки:
Первый - это конвертер - вы можете ввести фрагменты HTML или ERB, и вы получите haml!
источник