【问题标题】:Building custom config with simple_form使用 simple_form 构建自定义配置
【发布时间】:2014-09-11 04:48:29
【问题描述】:

我使用 rails default form_for 构建了以下表单:

= form_for @customer do |f|
  .form-group
    .col-sm-3
      = f.label :first_name, "Vorname", class: "control-label"
    .col-sm-3
      = f.text_field :first_name, placeholder: "Ihr Vorname", class: 'form-control'

现在我想为输入构建 simple_form 配置,并且标签具有相同的类,simple_form_for 看起来与 form_for 相同。这段代码给了我以下html:

          <form accept-charset="UTF-8" action="/portal/sessions" class="new_customer" id="new_customer" method="post"><div style="display:none"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="LeRWJSnYDYvzeW5+KMm9BczbtfHXX6yI6Pg4xLjH2SE=" /></div>    <div class='row'>
              <div class='col-md-12'>
                <div class='form-group'>
                  <div class='col-sm-3'>
                    <label class="control-label" for="customer_first_name">Vorname</label>
                  </div>
                  <div class='col-sm-3'>
                    <input class="form-control" id="customer_first_name" name="customer[first_name]" placeholder="Ihr Vorname" type="text" />
                  </div>
                </div>
              </div>
            </div>
            <input name="commit" type="submit" value="Create Customer" />
        </form>

我试图自己编写 simple_form 配置,但它无法正常工作:

config.wrappers :bootstrap, error_class: 'error' do |b|
    b.use :html5
    b.use :placeholder
    b.use :label, class: 'control-label'
    b.wrapper tag: 'div', class: 'form-group' do |ba|
      ba.use :input, class: 'form-controlc'
      ba.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
      ba.use :hint,  wrap_with: { tag: 'p', class: 'help-block' }
    end
  end

有人可以帮我解决这个问题吗?

【问题讨论】:

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


    【解决方案1】:

    答案是:

    SimpleForm.setup do |config|
      config.wrappers :bootstrap, tag: 'div', class: 'control-group', error_class: 'error' do |b|
        b.use :html5
        b.use :placeholder
        b.use :label
        b.wrapper tag: 'div', class: 'controls' do |ba|
          ba.use :input
          ba.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
          ba.use :hint,  wrap_with: { tag: 'p', class: 'help-block' }
        end
      end
     config.default_wrapper = :bootstrap
      config.label_class = 'control-label'
      config.input_class = 'form-control'
    end
    

    【讨论】:

      猜你喜欢
      • 2020-02-25
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      相关资源
      最近更新 更多