0

我刚刚切换到 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 的人来说,这是一件非常基本的事情。任何帮助深表感谢!

4

2 回答 2

2

您应该替换=-beforeifelse

于 2013-11-07T11:20:50.460 回答
2

HAML 是基于缩进的,解析器可能很棘手。你不需要- end在 Haml 中使用。改用缩进。在 Haml 中,只要在 Ruby 评估命令后缩进增加,就会开始一个块。它在缩进减少时结束。示例 if else 块如下。

- if condition
  = something
- else
  = something_else
于 2014-06-19T13:59:41.543 回答