Стандартная проверка Rails помещает мои заполненные ошибками поля в div класса fieldWithErrors.

Как я могу изменить его так, чтобы родительскому элементу с ошибкой был назначен этот класс вместо создания нового div на странице?

РЕДАКТИРОВАТЬ:

На этом веб-сайте ошибки заключаются в span вместо div s, что немного помогает при форматировании, но я бы очень хотел просто вставить класс ошибки в родительский элемент ...

app/config/environment.rb (в блоке инициализатора):

config.action_view.field_error_proc = Proc.new { |html_tag, instance| %(<span class="fieldWithErrors">#{html_tag}</span>) }

Метод Hpricot, указанный на этом сайте похоже на то, что я хочу, но я не знаю, куда я должен это положить. Я также продолжаю получать ошибки uninitialized constant ActionView. Кто-нибудь может помочь?

0
neezer 13 Окт 2009 в 07:12

2 ответа

Лучший ответ

Потрясающие!

Я понял, как заставить работать < / a> (знаю, я такой новичок).

Создайте новый файл в app/config/initializers; Я позвонил в свой error_formatting.rb.

Вставьте туда оптимизированный метод с указанного выше веб-сайта:

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
   ...
end

Сохранить. Добавьте немного hpricot с щепоткой config.gem 'hpricot' в блок инициализатора app/config/environment.rb , затем rake gems:install, перезапустите приложение, и теперь мое приложение работает именно так, как я хочу, как милый маленький котенок.

0
neezer 13 Окт 2009 в 07:54

Вы всегда можете просто установить div с классом fieldWithErrors для отображения в строке. Вы можете использовать CSS вместо того, чтобы пытаться переопределить метод упаковки валидации.

0
CodeJoust 13 Окт 2009 в 07:46
Эх, не совсем то, что мне нужно; мои заботы о стиле таковы, что это не жизнеспособный вариант для меня. Я знаю, что это можно сделать (см. Ссылку на Hpricot выше; я только что добавил), я просто не могу понять, где разместить это в моем приложении. Есть предположения?
 – 
neezer
13 Окт 2009 в 07:47