如何在Haml中编写if条件?
如何在Haml中为Ruby on Rails应用程序编写if
和if
语句?
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'}"}
这里有两个链接:
第一个是转换器,你可以inputhtml或erb片段,你会得到haml!