我刚刚切换到HAML并将我的erb转换为haml。我在设置代码时遇到错误(其他意外的关键字),我认为应该看起来:
= if signed_in?
%li= link_to "Users", '#'
%li#fat-menu.dropdown
%a.dropdown-toggle{ href: '#', data: { toggle: "dropdown" } }
Account
%b.caret
%ul.dropdown-menu
%li= link_to "Profile", current_user
%li= link_to "Settings", '#'
%li.divider
%li= link_to "Log out", signout_path, method: "delete"
= else
%li= link_to "Log in", signin_path
我尝试过很多东西,但我似乎无法解决语法错误。我相信对于知道HAML的人来说,这是一个非常基本的事情。非常感谢任何帮助!
答案 0 :(得分:2)
您应该在=
和-
之前将if
替换为else
。
答案 1 :(得分:2)
HAML是基于缩进的,解析器可能很棘手。您不需要在Haml中使用- end
。改为使用缩进。在Haml中,只要在Ruby评估命令之后增加缩进,就会开始一个块。它在缩进减少时结束。如果否则阻塞如下。
- if condition
= something
- else
= something_else