如何使用Formtastic更改标签的类别

时间:2015-05-24 07:04:56

标签: ruby-on-rails formtastic

我有以下代码,使用最新版本的Formatastic 3.1.0。

<%= f.input :name, :input_html => { :class => "col-lg-10" }, :label_html => { :class => "col-lg-2" }%>

我可以更改input_html但是找不到更改标签html类的选项。有没有办法做到这一点?

输出是这样生成的(请注意标签类中省略“col-lg-2”)。

<li class="string input required stringish" id="account_name_input">
<label for="account_name" class="label">Name<abbr title="required">*</abbr></label>
<input id="account_name" class="col-lg-10" type="text" value="" name="account[name]">
</li>

1 个答案:

答案 0 :(得分:1)

查看文档和源代码,我没有看到内置的方法来执行此操作。 (我总是错的。)但是,也许这个猴子补丁会起作用:

配置/初始化/ formtastic_monkey_patch.rb

Formtastic::Inputs::Base::Labelling.module_eval do

  def label_html_options
    {
      :for => input_html_options[:id],
      :class => (['label'] + (options[:label_class] || [])).flatten
    }
  end
end

这应该覆盖Formtastic的默认label_html_options函数,可以在this file中看到。然后将通过数组添加类:

f.input :my_attribute, :label_class => ['my_class', 'my_other_class']

这是我的想法,但我建议在使用之前与我的意见分开。