gpt4 book ai didi

ruby-on-rails - If 语句中额外的 Ruby 行会导致 Haml 出现问题吗?

转载 作者:数据小太阳 更新时间:2023-10-29 07:04:43 24 4
gpt4 key购买 nike

我试图在我的一个 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 问题,所以如果我不恰本地提出这个问题,请告诉我。

最佳答案

HAML reference says :

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com