9

下面的代码unbalanced bracket error在第 4 行给了我

%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

任何的想法?

4

3 回答 3

11

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

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

将工作

于 2012-11-28T02:45:11.480 回答
4

我发现其他解决方案可能适用于其他解决方案。根据文档,它需要用于|多行内容。当然右括号不能在新行中。例子:

  %a{id:"s-#{sentence.id}", |
  href:"/sentence/#{sentence.id}", |
  'data-type' => 'text', |
  'data-url' => "/sentence/#{sentence.id}", |
  'data-toggle' => 'manual'}= sentence.content
于 2014-12-04T23:14:47.803 回答
2

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

例如

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

注意,后面'manual'。这对我有用。希望它可以帮助某人。

于 2018-09-20T19:06:41.383 回答