Я пытаюсь, чтобы ошибки проверки на стороне клиента отображались встроенными, используя гем client_side_validations (https://github.com/bcardarella/client_side_validations) в моем приложении RefineryCMS.
Когда я выхожу из недопустимого поля, оно, как и ожидалось, заворачивается в тег span.fieldWithErrors, поэтому я знаю, что проверки javascript работают. Однако я не могу отображать сообщения об ошибках даже после переопределения ActionView::Base.field_error_proc.
У меня такое ощущение, что мой инициализатор впоследствии переопределяется нефтеперерабатывающим заводом (?):
В config/initializers/client_side_validations.rb:
# Uncomment the following block if you want each input field to have the validation messages attached.
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
unless html_tag =~ /^<label/
%{<div class="field_with_errors">#{html_tag}<label for="#{instance.send(:tag_id)}" class="message">#{instance.error_message.first}</label></div>}.html_safe
else
%{<div class="field_with_errors">#{html_tag}</div>}.html_safe
end
end
Я также попытался установить field_error_proc из config/application.rb, используя что-то вроде строк
config.action_view.field_error_proc = Proc.new { |html_tag, instance| # etc... }
Ни один из них, похоже, не влияет на отображение недопустимых полей. Есть идеи??
<div>
:ActionController::Base.helpers.content_tag(:div, html_tag, :class => "fieldWithErrors")
- person JellicleCat   schedule 13.06.2012