collection_radio_button simple_form и пользовательский класс меток

я пытаюсь создать форму звездного рейтинга с коллекцией радио, используя FontAwesome, для этого мне действительно нужно изменить классы меток входных данных collection_radio_button, сгенерированных при помощи simple_form, но может 'не могу найти никакого очевидного решения.

Пока я использую:

form_for @user do |f|
  f.collection_radio_buttons :rating, [[1, 'Bad'] ,[2, 'Ok'], [3, 'Great']],
                             :first, :last, { item_wrapper_tag: false }
end

Который генерирует:


Bad

Ok

Great

Но я'Мне бы хотелось, чтобы у ярлыков был дополнительный класс, например:


Great

ОБНОВЛЕНИЕ: Этот класс определен статически в:https://github.com/plataformatec/simple_form/blob/master/lib/simple_form/tags.rb#L43

 Sébastien Grosjean - ZenCocoon19 июн. 2013 г., 15:43
Я пытался без успеха. На самом деле я понимаю, что этот источник немного изменился в последней версии simple_form, и теперь ищу источник для 2.1 вместо 3.0.0.rc, чтобы лучше понять, как с ним работать.
 spullen19 июн. 2013 г., 14:56
Можно попробовать добавитьlabel_html: { class: 'icon-star' } как вариант

Ответы на вопрос(2)

Решение Вопроса

Это может быть достигнуто с помощью блока:

form_for @user do |f|
  f.collection_radio_buttons :rating, [[1, 'Bad'] ,[2, 'Ok'], [3, 'Great']],
                             :first, :last, { item_wrapper_tag: false } do |b|
    b.radio_button + b.label(:class => "collection_radio_buttons icon-star")
  end
end

Этот документ может продемонстрировать другой пример:http://rubydoc.info/github/plataformatec/simple_form/SimpleForm/FormBuilder:collection_radio_buttons

 andrewcockerham04 авг. 2014 г., 14:05
Искал этот ответ часами. Если вы хотите добавить класс к переключателям ввода, что я и искал, используйте это:b.radio_button(:class => "collection_radio_buttons icon-star") + b.label(:class => "collection_radio_buttons icon-star")

В случае, если кто-то задается вопросом, как добавить класс к вводу радиокнопки для переноса меток при установкеboolean_style = :nested вот что я пришел с:

Вы можете установить опцию под названием:item_label_class при вызове ввода, например:


Я хотел автоматизировать этот материал, поэтому я определил обычайCollectionRadioButtonsInput учебный класс. Вам необходимо добавить в метод:apply_default_collection_options!

def apply_default_collection_options!(options)
  super(options)
  options[:item_label_class] == 'radio' if input_type == :radio_buttons
end

Ваш ответ на вопрос