Haml多行注释和if-elsif-else语句

kov*_*ack 4 haml comments ruby-on-rails

我有以下代码.

- if specializations.count <= 0
  .alert.alert-warning
    Warning message

-# - elsif agency.offers_limit >= agency.offers.count
-#   .alert.alert-warning
-#     Warning message

- else
  = render 'form'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我收到了Got "else" with no preceding "if".我还能如何评论已注释的部分代码以便- else ...正确处理?

如果我评论这样的代码:

- if specializations.count <= 0
  .alert.alert-warning
    Warning message

-# - elsif agency.offers_limit >= agency.offers.count
  .alert.alert-warning
    Warning message

- else
  = render 'form'
Run Code Online (Sandbox Code Playgroud)

我没有错误,但- else ...没有处理,也没有呈现任何表单.

kov*_*ack 5

不应在if - elsif - else语句中处理的代码应缩进.所以,如果在我的情况下我想跳过elsif语句,我的代码应如下所示:

- if specializations.count <= 0
  .alert.alert-warning
    Warning message 

  -# - elsif agency.offers_limit >= agency.offers.count
  -#  .alert.alert-warning
  -#    Warning message

- else
  = render 'form'
Run Code Online (Sandbox Code Playgroud)

或者像这样(为了保持正确的缩进):

- if specializations.count <= 0
  .alert.alert-warning
    Warning message 

  -# - elsif agency.offers_limit >= agency.offers.count
    .alert.alert-warning
      Warning message

- else
  = render 'form'
Run Code Online (Sandbox Code Playgroud)