Rails & Slim: autoclosed 标签不获取内容

Rails & Slim: autoclosed tag does not fetch content

我有这个模板:

div class="col-md-offset-4 col-md-16"
  - if @campaign.errors.any?
    ul
  - @campaign.errors.full_messages.each do |e|
    li |e
= form_for @campaign do |f|
  div.form-group
  = f.label :name, class: "control-label"
  = f.text_field :name, class: "form-control"
  div.form-group
  = f.label :ad_link, class: "control-label"
  = f.text_field :link, class: "form-control"
  div.form-group
  = f.label :image, class: "control-label"
  = f.file_field :campaign_image, class: "file"
  div.form-group
  = f.submit "Create campaign"

呈现以下 html:

<div class="col-md-offset-4 col-md-16"></div>
<form ...> </form>

所以它让我清空 div 并在下面形成表格,而不是在 div 内部形成表格。

我试图通过插入通常的 html:

来解决它
<div class="col-md-offset-4 col-md-16">
      - if @campaign.errors.any?
        ul
      - @campaign.errors.full_messages.each do |e|
        li |e
    = form_for @campaign do |f|
      div.form-group
      = f.label :name, class: "control-label"
      = f.text_field :name, class: "form-control"
      div.form-group
      = f.label :ad_link, class: "control-label"
      = f.text_field :link, class: "form-control"
      div.form-group
      = f.label :image, class: "control-label"
      = f.file_field :campaign_image, class: "file"
      div.form-group
      = f.submit "Create campaign"
</div>

但结果出现了一些奇怪的输出,表单标签开始内联 div 并且没有捕获任何字段或提交按钮。

缩进在 slim 中非常重要。查看 there 文档。所以,你必须这样写:

div class="col-md-offset-4 col-md-16"
  |
  - if @campaign.errors.any?
    ul
  - @campaign.errors.full_messages.each do |e|
    li |e
  = form_for @campaign do |f|
      div.form-group
        = f.label :name, class: "control-label"
        = f.text_field :name, class: "form-control"
      div.form-group
        = f.label :ad_link, class: "control-label"
        = f.text_field :link, class: "form-control"
      div.form-group
        = f.label :image, class: "control-label"
        = f.file_field :campaign_image, class: "file"
      div.form-group
        = f.submit "Create campaign"