如何以rails简单形式在fieldset内部创建div

时间:2019-01-10 14:30:14

标签: html ruby-on-rails simple-form

我得到了带有相关复选框的简单表格。我需要使用twitter引导类“ col-md-4”来设置该复选框的样式,该类会在3列中呈现该复选框。但它需要父元素(字段集)上的“行”类。当我将该类分配给fieldset时,它不起作用。但是,如果我在浏览器devtool中将父元素更改为div,则效果很好。 有什么办法可以在fieldset中创建另一个div,它将成为我所有复选框div的父元素?或任何其他方法来解决我的问题?

_form.slim
=simple_form_for @test_run do |f|
  =f.error_notification
  =f.association :test_cases, as: :check_boxes, collection: ::TestCase.all, include_hidden: false, :item_wrapper_class => 'col-md-4'
  =f.input :video, as: :radio_buttons, label: 'Record video?'
  =f.submit


html
<fieldset class="form-group check_boxes required test_run_test_cases">
  <legend class="col-form-label pt-0">Test cases <abbr title="required">*</abbr></legend>
  <div class="col-md-4">checkbox</div>
  <div class="col-md-4">checkbox</div>
  .
  .
  .
</fieldset>

我需要这样的东西

<fieldset class="form-group check_boxes required test_run_test_cases">
  <div class="row">
    <legend class="col-form-label pt-0">Test cases <abbr title="required">*</abbr></legend>
    <div class="col-md-4">checkbox</div>
    <div class="col-md-4">checkbox</div>
    .
    .
    .
  </div>
</fieldset>

1 个答案:

答案 0 :(得分:1)

对我来说,最快的解决方案是在以下位置实际更改默认包装标签:

# config/initializers/simple_form.rb
config.collection_wrapper_tag = :div

这将在复选框或单选按钮周围创建一个div。 然后,您可以在简单表单输入中使用collection_wrapper_class来为此div分配一个类。对于您而言,应该是

=f.input :video, as: :radio_buttons, label: 'Record video?', collection_wrapper_class: 'some-class'