如何在Haml中编写if条件?

如何在Haml中为Ruby on Rails应用程序编写ifif语句?

HAML是基于缩进的,分析器可能会很棘手。你不需要在Haml中使用“ – end”。 使用缩进来代替。在Haml中,只要在Ruby评估命令之后增加了缩进,就会开始一个块。 当缩进减less时结束。如果其他块如下所示。

 - if condition = something - else = something_else 

一个实际的例子

 - if current_user = link_to 'Logout', logout_path - else = link_to 'Login', login_path 

编辑:如果你只是想使用条件然后

  - if current_user = link_to 'Logout', logout_path 

在haml中,两个运算符用于ruby代码。

  • =用于评估并插入到文档中的ruby代码。

例:

 = form_for @user 
  • -用于评估的Ruby代码,而不是插入到文档中。

例:

 - 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'}"} 

这里有两个链接:

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

第一个是转换器,你可以inputhtml或erb片段,你会得到haml!