Ruby on rails 实例变量If Else条件在HAML中添加标记

Ruby on rails 实例变量If Else条件在HAML中添加标记,ruby-on-rails,ruby,haml,Ruby On Rails,Ruby,Haml,我正在尝试在HAML视图文件中编写条件语句。我想做的是,如果quote对象具有链接,则在blockquote的其余部分的顶部添加一个link_to标记。如果为nil,则格式化blockqoute,而不在顶部添加链接到标记。以下是我的当前代码: .carousel-inner - @quotes.each_with_index do |quote, index| .item{ class: ("active" if index == 0)}

我正在尝试在HAML视图文件中编写条件语句。我想做的是,如果quote对象具有链接,则在blockquote的其余部分的顶部添加一个link_to标记。如果为nil,则格式化blockqoute,而不在顶部添加链接到标记。以下是我的当前代码:

.carousel-inner
          - @quotes.each_with_index do |quote, index|
            .item{ class: ("active" if index == 0)}
              - if quote.link.present?
                = link_to quote.link
                  %blockquote
                    .row
                      .col-sm-3.text-center
                        %img.img-circle{:src => quote.avatar, :style => "width: 100px;height:100px;"}
                      .col-sm-9
                        %p= quote.quote
                        %small= quote.author
              - else
                %blockquote
                  .row
                    .col-sm-3.text-center
                      %img.img-circle{:src => quote.avatar, :style => "width: 100px;height:100px;"}
                    .col-sm-9
                      %p= quote.quote
                      %small= quote.author
我得到的当前堆栈错误是:

_quotes.html.haml:26:语法错误,意外关键字\u else,应为关键字\u end\u quotes.html.haml:39:语法错误,意外关键字\u sure,应为输入结束


以前有人碰到过这样的事吗?谢谢

您在
=link\u to quote.link
这一行中缺少了
do
,它将终止对结束块的解析。您只需将其更改为:

= link_to quote.link do
  %blockquote
    -# ...

成功了!非常感谢你!