Добавление фонового изображения или тега изображения в переключатели Formtastic с коллекцией - PullRequest
0 голосов
/ 02 сентября 2011

У меня есть это поле формы в форме, где пользователь вводит данные своей кредитной карты:

<%= form.input :credit_card_type, :as => :radio, :collection => User.credit_card_types %>

User.credit_card_types выглядит так:

  def self.credit_card_types
    {'Visa' => VISA, 'Master Card' => MASTER_CARD, 'American Express' => AMERICAN_EXPRESS}
  end

Что дает мне следующееhtml:

<li id="user_credit_card_type_input" class="radio optional">
  <fieldset>
    <legend class="label">
      <label>Tipo de tarjeta</label>
    </legend>
    <ol>
      <li>
        <label for="user_credit_card_type_1">
          <input type="radio" value="1" name="user[credit_card_type]" id="user_credit_card_type_1"> Master Card
        </label>
      </li>
      <li>
        <label for="user_credit_card_type_0">
          <input type="radio" value="0" name="user[credit_card_type]" id="user_credit_card_type_0"> Visa</label>
      </li>

      <li>
        <label for="user_credit_card_type_2">
          <input type="radio" value="2" name="user[credit_card_type]" id="user_credit_card_type_2"> American Express</label>
      </li>
    </ol>
  </fieldset>
</li>

Учитывая это, у меня вопрос, как я могу добавить определенное фоновое изображение для каждой метки переключателя?Я не могу сделать это с помощью CSS, потому что у ярлыков нет никакого идентификатора, и я не могу (или я не знаю, как) указать его.Я пытался добавить image_tag, но он избегает HTML.Любое предложение?

1 Ответ

1 голос
/ 02 сентября 2011

Formtastic может быть настроен для ваших нужд. Вы должны быть в состоянии найти файл конфигурации Formtastic в config / initializer. Добавьте такую ​​строку:

Formtastic::SemanticFormHelper.builder = SemanticCustomFormBuilder

Затем создайте в вашем каталоге lib файл с именем semantic_custom_form_builder.rb

class SemanticCustomFormBuilder < Formtastic::SemanticFormBuilder

  def cicloon_special_radio_button_input
    #define your radiobuttons here
  end

end

Вы можете использовать свое собственное определение, как это в ваших формах:

<%= form.input :credit_card_type, :as => :cicloon_special_radio_button %>
...