非法嵌套:内容不能与%p放在同一行并嵌套在其中

问题描述 投票:0回答:1

我收到以下错误,

非法嵌套:不能同时将内容与%p放在同一行并嵌套在其中。这是我的代码

- @docs.each do |doc|
%h2= link_to doc.title, doc
%p= time_ago_in_words(doc.created_at)
%p= truncate(doc.content, length:50)

    = link_to "Create Doc", new_doc_path
ruby-on-rails haml
1个回答
0
投票

[当您将内容与hml中的标签提供在同一行时,您说的是'此标签的内容将仅是该行中的内容-立即关闭标签'。所以

%p hello

成为

<p>hello</p>

如果标签的行数超过1,则使用换行符和缩进来指示该块的内容

%p
  Hello
  World

成为

<p>Hello\nWorld</p>

您正在做的是尝试在此处同时使用它们。您正在为简写标签提供内容,但也会缩进,好像您打算继续向p标签添加内容一样。

要解决此问题,您需要使用多行语法(如果这是您的意图)或从link_to中删除缩进。

- @docs.each do |doc|
%h2= link_to doc.title, doc
%p= time_ago_in_words(doc.created_at)
%p
  = truncate(doc.content, length:50)
  = link_to "Create Doc", new_doc_path
© www.soinside.com 2019 - 2024. All rights reserved.