어떻게 작성 if
하고 if
– else
루비 레일에 응용 프로그램 HAML의 문을?
답변
HAML은 들여 쓰기 기반이며 파서는 까다로울 수 있습니다. Haml에서 “-end”를 사용할 필요가 없습니다. 대신 들여 쓰기를 사용하십시오. Haml에서는 Ruby 평가 명령 후 들여 쓰기가 증가 할 때마다 블록이 시작됩니다. 들여 쓰기가 감소하면 종료되며, else 블록이면 다음과 같이 샘플합니다.
- if condition
= something
- else
= something_else
실용적인 예
- if current_user
= link_to 'Logout', logout_path
- else
= link_to 'Login', login_path
편집 :
if 조건 만 사용하고 싶다면
- if current_user
= link_to 'Logout', logout_path
답변
haml에서는 두 개의 연산자가 루비 코드에 사용됩니다.
=
평가되어 문서에 삽입되는 루비 코드에 사용됩니다.
예:
= form_for @user
-
평가되고 문서에 삽입되지 않는 루비 코드에 사용됩니다.
예:
- if @user.signed_in?
= "Hi"
- else
= "Please sign in!"
답변
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을 얻을 수 있습니다!