- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我试图在我的一个 Haml View 中的 If/Else 语句中放置一些(未呈现的)注释,但它似乎会导致问题。
我想要以下代码:
- # Stuff like ______ activates the if statement
- if @condition
(Some code)
- # Stuff like _____ activates the else statement
- else
(Some other code)
不幸的是,Rails 向我抛出这个错误:
Got "else" with no preceding "if"
如果我删除“其他”注释,即
- # Stuff like ______ activates the if statement
- if @condition
(Some code)
- else
(Some other code)
一切都按预期进行。问题不在于评论本身。我必须删除实际的 Ruby 代码行(包括连字符)以使其呈现。也就是说,即使我只留下一个以连字符开头的空行,如下所示:
- # Stuff like ______ activates the if statement
- if @condition
(Some code)
-
- else
(Some other code)
我得到了同样的错误。其他可能相关的细节:后面有更多代码与 if/else 语句处于同一缩进级别(不在其中),并且整个代码嵌套在一个表单中。有人可以向我解释发生了什么问题吗?非常感谢!
附言这是我的第一个 SO 问题,所以如果我不恰本地提出这个问题,请告诉我。
最佳答案
Ruby blocks, like XHTML tags, don’t need to be explicitly closed in Haml. Rather, they’re automatically closed, based on indentation. A block begins whenever the indentation is increased after a Ruby evaluation command. It ends when the indentation decreases (as long as it’s not an else clause or something similar).
因此,当您减少缩进,并且该行不是 else
子句(或类似的,例如 elsif
)时,if
finishes – 隐式添加了一个end
。那么当然 else
行是无效的
您的解决方案是在 else
子句之前或之后缩进注释:
- if @condition
- # Stuff like ______ activates the if statement
(Some code)
- else
- # Stuff like _____ activates the else statement
(Some other code)
关于ruby-on-rails - If 语句中额外的 Ruby 行会导致 Haml 出现问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17264770/
我是一名优秀的程序员,十分优秀!