Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Twitter bootstrap 简单形式:如何更改输入';s包装器';s类?(不是包装器上的html效果)_Twitter Bootstrap_Ruby On Rails 4_Simple Form - Fatal编程技术网

Twitter bootstrap 简单形式:如何更改输入';s包装器';s类?(不是包装器上的html效果)

Twitter bootstrap 简单形式:如何更改输入';s包装器';s类?(不是包装器上的html效果),twitter-bootstrap,ruby-on-rails-4,simple-form,Twitter Bootstrap,Ruby On Rails 4,Simple Form,我在使用simple_form和Bootstrap 3时遇到问题。关于输入的包装标签。显示以下代码: 查看代码(带haml) config/simple\u form\u bootstrap.rb SimpleForm.setup do |config| config.input_class = "form-control" config.wrappers :bootstrap, tag: 'div', class: 'form-group', error_class: 'error'

我在使用simple_form和Bootstrap 3时遇到问题。关于输入的包装标签。显示以下代码:

查看代码(带haml)

config/simple\u form\u bootstrap.rb

SimpleForm.setup do |config|
  config.input_class = "form-control"

  config.wrappers :bootstrap, tag: 'div', class: 'form-group', error_class: 'error' do |b|
    b.use :html5
    b.use :placeholder
    b.use :label, class: "control-label"
    # b.wrapper tag: 'div', class: "col-sm-6" do |ba|
    b.wrapper tag: 'div' 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
我只想在默认情况下使用“水平形式”

生成的html

...
\<div class="form-group string optional refer_email_form_to">
  <label class="string optional control-label col-sm-2" for="refer_email_form_to">To</label>
  <div>
    <input class="string optional form-control" id="refer_email_form_to"   name="refer_email_form[to]" type="text">
  </div>
</div>
...
。。。
\
到
...
我想要的是更改只包装
元素的
类,如下所示:

...
<div class="col-sm-6">
  <input class="string optional form-control" id="refer_email_form_to"   name="refer_email_form[to]" type="text">
<div>
...
。。。
...
我已经从simple_form的github页面阅读了自述文件,并在Google上搜索了这个问题,我知道我可以通过添加
b.wrapper标签:“div”,class:“col-sm-6”do | ba |
config/simple_form_bootstrap.rb文件来实现这一点,但真正的问题是我可能会对div使用不同的类,可能是其他形式的col-sm-9。我在视图中尝试了
input\u html
wrapper\u html
,但是
wrapper\u html
对第一个
的效果,而
input\u html
只对
元素产生效果

有没有办法在视图中动态更改
的包装器

b.wrapper tag: 'div' do |ba|

按如下方式设置输入字段

= f.input :to, label_html: { class: "col-sm-2" }, wrapper: :bootstrap, my_wrapper_html: { class: "css-class-name-goes-here" }
生成的HTML是

<div class="form-group string optional refer_email_form_to">
  <label class="string optional control-label col-sm-2" for="refer_email_form_to">To</label>
  <div class="css-class-name-goes-here">
    <input class="string optional form-control" id="refer_email_form_to"   name="refer_email_form[to]" type="text">
  </div>
</div>
注释

  • 我必须明确指定“引导”包装器才能使其工作。以下设置似乎没有生效
    config.default\u wrapper=:bootstrap
  • 当我像您那样命名包装
    引导时,它不起作用。当我使用不同的名称(如
    bootstrap\u x
    )时,该设置起作用。这可能是我的本地问题,所以这只是供您参考,以防您遇到相同的问题
  • 如果您想知道上述内容来自何处,请查看simple_form自述文件,它位于“包装器API”部分
  • 谢谢你。我确实读过wrappers API,我认为这是解决问题的一种方法,我会尝试一下。
    = f.input :to, label_html: { class: "col-sm-2" }, wrapper: :bootstrap, my_wrapper_html: { class: "css-class-name-goes-here" }
    
    <div class="form-group string optional refer_email_form_to">
      <label class="string optional control-label col-sm-2" for="refer_email_form_to">To</label>
      <div class="css-class-name-goes-here">
        <input class="string optional form-control" id="refer_email_form_to"   name="refer_email_form[to]" type="text">
      </div>
    </div>