Rails и Formtastic: как отобразить метку флажка справа?

Я использую Twitter Bootstrap.

У меня есть следующий код...

<div class="row">
  <div class="span5">
    <%= f.input :is_authorized_to_leave_with_child %>
    <%= f.input :is_emergency_contact %>
  </div>
  <div class="span5">
  </div>
</div>

Проблема в том, что метка отображается слева, а флажок справа. С другой стороны, как выглядит раздел с формой флажка Twitter Bootstrap, проверьте его: http://twitter.github.com/bootstrap/base-css.html

Флажок справа, а метка справа. Как я могу отобразить это так?

1 ответ

Решение

Начиная с formtastic 2.x, вы можете переопределить поведение существующих входных данных, используя app/inputs/#{ input_name.underscore }_input.rb файл.

Поведение по умолчанию BooleanInput is: call to_html метод, который вызывает label_with_nested_checkbox, который вызывает label_text_with_embedded_checkbox, который создает следующий макет:

<label>
  <input />
</label>

и использует эту логику:

check_box_html << "" << label_text

Итак, все, что вам нужно сделать, это просто создать app/inputs/boolean_input.rb файл с этим кодом:

class BooleanInput < Formtastic::Inputs::BooleanInput
def label_text_with_embedded_checkbox
        label_text << "" << check_box_html
    end
end

И изменить app/assets/formtastic-ie7.css файл, чтобы сделать этот ввод более привлекательным:

.formtastic .boolean label input {
    left:-4px;
}

Вот как это выглядит:

Другие вопросы по тегам