Ruby on rails 3 SimpleForm默认输入类

Ruby on rails 3 SimpleForm默认输入类,ruby-on-rails-3,simple-form,Ruby On Rails 3,Simple Form,我正在使用SimpleForm+引导。如何向class=span12的所有type=“text”输入添加属性 输出如下内容的内容: <div class="controls"><input autofocus="autofocus" class="string required span12" id="user_first_name" name="user[first_name]" required="required" size="50" type="text" value=

我正在使用SimpleForm+引导。如何向class=
span12
的所有
type=“text”
输入添加属性

输出如下内容的内容:

<div class="controls"><input autofocus="autofocus" class="string required span12" id="user_first_name" name="user[first_name]" required="required" size="50" type="text" value=""></div>
不起作用。它将添加到包装器中,而不是修改输入标记。有什么想法吗

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
end

我有一个类似的问题,经过一些研究,我发现这是不支持使用包装器api

最好在每个表单中使用:defaults选项,而不是为每个输入添加

您可以这样实现:
simple\u form\u for(@my\u实例,默认值:{input\u html:{class:'span12'}})

您也可以选择使用自定义formbuilder。

您只需将string\u input.rb类文件添加到rails加载路径(即app/inputs/string\u input.rb),即可覆盖字符串输入的简单表单默认值,并包括以下内容:

class StringInput < SimpleForm::Inputs::StringInput
  def input_html_classes
    super.push('span12')
  end
end
class StringInput
如果需要向其他类型的输入添加更多默认类,可以查看提供的各种输入类型:


我想这可以作为一个临时解决方案,直到配置允许为止。对于那些通过Google到达这里的人来说,从v2.2(请参阅)开始,通过调用
config.input\u class
就可以支持这一点,但这也将容器div包装在同一个类中,这使得引导样式不稳定。因此,这个答案可能仍然是最好的解决方案,即使配置允许在所有输入上设置类。
class StringInput < SimpleForm::Inputs::StringInput
  def input_html_classes
    super.push('span12')
  end
end