[ruby-on-rails] Haml에서 if 조건을 작성하는 방법?

어떻게 작성 if하고 ifelse루비 레일에 응용 프로그램 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}


답변

다음은 두 개의 링크입니다.

  1. https://html2haml.herokuapp.com/
  2. http://haml.info/tutorial.html

첫 번째는 변환기입니다. html 또는 erb 스 니펫을 입력하면 haml을 얻을 수 있습니다!


답변