实例变量如果在HAML中添加标记的其他条件

时间:2018-02-10 15:56:06

标签: ruby-on-rails ruby haml

我正在尝试在HAML视图文件中编写条件语句。如果引用对象有链接,我想要做的是在blockquote的其余部分顶部添加一个link_to标记。如果它为零,则格式化blockqoute而不将top_to标记放在顶部。这是我目前的代码:

.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:语法错误,意外的keyword_else,期待keyword_end _quotes.html.haml:39:语法错误,意外的keyword_ensure,期待输入结束

Rails Error Image

之前有人碰到这样的事吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您错过了do= link_to quote.link,它正在解析结束块的解析。您只需将其更改为:

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