简单形式添加 div

simple form adds div

我正在尝试通过创建自己的包装器来自定义简单形式(用于语义 ui)。然而,它看起来很简单,因为在每个输入(和包装器)周围不断添加 div。

<div class="float optional recipe_yield">

这是我的自定义包装器:

  config.wrappers :semantic do |b|
    b.use :html5
    b.use :placeholder

    b.wrapper tag: :div, class: :field do |c|
      c.use :label_input
    end
  end

我希望 f.input :name 的结果是:

<div class="field">
  <label class="string optional" for="recipe_name">Name</label>
  <input class="string optional" name="recipe[name]"   id="recipe_name"type="text">
</div>

相反,我得到了这个:

<div class="string optional recipe_name">
    <div class="field">
      <label class="string optional" for="recipe_name">Name</label>
      <input class="string optional" name="recipe[name]"   id="recipe_name"type="text">
    </div>
</div>

我如何摆脱多余的 <div class="string optional recipe_name">?我不想用简单的形式来添加它。或者可能有简单的形式包括 'field' 作为 class 在 div.

所以我想出了一个简单的形式来添加 'field' 作为标签和输入周围 div 中的 类 之一。基本上只需要在调用 config.wrappers.

时将其作为选项传递
  config.wrappers :semantic, tag: 'div', class: 'field' do |b|
    b.use :html5

    b.use :placeholder
    b.use :label_input
  end

如您所见,我也删除了 b.wrapper。否则它将在标签和输入周围添加一个 div,但仍在

<div class="float optional recipe_yield">