Настройка field_with_errors - PullRequest
       65

Настройка field_with_errors

17 голосов
/ 17 сентября 2011

Есть ли способ сообщить Rails не создавать div.field_with_errors вокруг метки и поля, а создавать div.error вокруг них обоих?

Например, фрагмент из моего представления с формой (написано вHAML)

= form_for @user do |f|
  %div.clearfix
    = f.label :name
    %div.input
      = f.text_field :name

Я хочу, чтобы в случае ошибки корневой div был div.clearfix.error и избегал этого field_with_errors.Могу ли я это сделать?

В качестве другого варианта, могу ли я сделать formtastic для создания элементов стиля Bootstrap , без классов formtastic css и html, но с классами начальной загрузки.Могу ли я сделать что-то с полями ошибок в случае использования formtastic?

Ответы [ 13 ]

0 голосов
/ 24 июня 2013

Существует очень простое решение для всего этого беспорядка. Это на основе JavaScript, но это решило мои проблемы - просто добавьте это (при использовании горизонтальной формы):

$(document).ready(function() {
    $('.field_with_errors').parent().addClass('error');
});

В основном он использует поведение Rails по умолчанию и преобразует его в Bootstrap. Добавление класса ошибки к control-group, к которому он относится. Нет css и нет переопределения по умолчанию field_error_proc.

0 голосов
/ 12 декабря 2011

Вы можете использовать гем Formtastic Bootstrap , чтобы создать дружественную для Bootstrap разметку Twitter с Formtastic.

0 голосов
/ 17 сентября 2011

Это на самом деле более раздражает, чем вы думаете.

Я закончил тем, что создал свои собственные помощники тегов (которые мне были нужны и для других целей), хотя я начал с переопределения ActionView::Base.field_error_proc. (Это история сама по себе, поскольку она проходит в виде строки, а не то, с чем вы можете надежно возиться: (

Но начните с этого и посмотрите, хватит ли вам этого, иначе приготовьтесь к копанию и настройке.

...