当在Haml中将属性拉伸到多线时,我得到了一个不平衡的括号错误

时间:2012-11-28 02:14:29

标签: haml

以下代码在第4行给我unbalanced bracket error

%ul
  - @sentences.each do |sentence|
    %li
      %a{id:"s-#{sentence.id}",
      href:"/sentence/#{sentence.id}",
      'data-type' => 'text',
      'data-url' => "/sentence/#{sentence.id}",
      'data-toggle' => 'manual'
      }= sentence.content
      %a{href:'#'}
        %i.icon-pencil



Haml::SyntaxError at /user/1/sentence
Unbalanced brackets.
file: sentences.haml location: nil line: 4

任何想法?

3 个答案:

答案 0 :(得分:8)

我自己发现了问题,结尾}不应该像其他任何语言一样在新行中

'data-toggle' => 'manual'}
  = sentence.content

将起作用

答案 1 :(得分:3)

我发现其他解决方案可能适用于其他人。根据{{​​3}},需要在多行内容上使用|。当然,关闭括号不能在新行中。例如:

  %a{id:"s-#{sentence.id}", |
  href:"/sentence/#{sentence.id}", |
  'data-type' => 'text', |
  'data-url' => "/sentence/#{sentence.id}", |
  'data-toggle' => 'manual'}= sentence.content

答案 2 :(得分:0)

这个对我有用。尝试在最后一个键值对之后添加逗号。

例如

... 'data-url' => "/sentence/#{sentence.id}", 'data-toggle' => 'manual', }

请注意,之后的'manual'。这对我有用。希望对别人有帮助。