simple_form单选按钮(需要在<label> </label> </span>中添加<span>标签

时间:2013-08-10 15:43:05

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

使用simple_form_for gem创建以下HTML的最佳方法是什么?

<label>
   <input name="form-field-radio" type="radio" />
   **<span class="lbl"> radio option 2</span>**
</label>

请注意,默认情况下,当我使用以下语句创建单选按钮时,不会创建上述语句。如何在?

中添加该标签
<%= f.input :state, :collection => Project::STATES, :as => :radio_buttons %>

1 个答案:

答案 0 :(得分:1)

我有类似的需求(在<span>中嵌入<label>。它不是最干净的解决方案,但确实有效,我认为通过一些调整,它可以让您将输入和跨度嵌入标签中。以下修改导致:

<label>Name: 
  <span class="hint">this is a hint...</span>
</label>

我添加了以下内容作为初始化程序(使用rails 4和simple_form 3)来覆盖label_text方法:

# initializers/simple_form_custom.rb
module SimpleForm
  module Components
    module Labels

      def label_text
        if hint
          hint_text = %[<span class="hint">#{hint}</span>]
        else
          hint_text = ""
        end
        SimpleForm.label_text.call(raw_label_text, required_label_text, hint_text).strip.html_safe
      end

    end
  end
end

然后在initializers/simple_form.rb我有:

config.label_text = lambda { |label, required, hint| "#{label}: #{required} #{hint}" }