【问题标题】:Syntax for if/else statement in Haml - unexpected keyword else?Haml 中 if/else 语句的语法 - 意外关键字 else?
【发布时间】:2013-11-07 11:19:42
【问题描述】:

我刚刚切换到 HAML 并将我的 erb 转换为 haml。我在设置代码时遇到错误(意外的关键字 else),我认为它应该是这样的:

= 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 的人来说,这是一件非常基本的事情。非常感谢任何帮助!

【问题讨论】:

  • ifelse之前使用-而不是=

标签: ruby-on-rails ruby if-statement syntax-error haml


【解决方案1】:

您应该在ifelse 之前将= 替换为-

【讨论】:

  • 很好!!遇到马雷克 :)
【解决方案2】:

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

- if condition
  = something
- else
  = something_else

【讨论】:

    最近更新 更多