Я использую драгоценный камень проверки на стороне клиента rails, версия 3.2.1. Прямо сейчас я столкнулся с проблемой, когда проверки теперь применяются к формам, где я не хочу, чтобы эти проверки применялись.
Пожалуйста, найдите мои две формы, для регистрации и входа.
_sign_up_form.html.erb
<%= form_for(@user, :validate => true, :remote => true) do |f| %>
_sign_in_form.html.erb
<%= form_for(@user_session, :remote => true) do |f| %
Как вы могли видеть, я установил validate => true только в форме регистрации.
Я хочу, чтобы эти проверки на стороне клиента работали в форме sign_up, а не в форме sign_in. Обратите внимание, что обе эти формы загружаются после ajax-запросов к «новому» действию соответствующих контроллеров.
_sign_up_form.html.erb загружается, когда рендерится файл users/new.js.erb
*users/new/js.erb*
$("#static-form-modal .modal-body").html('<%= j(render(:partial => "users/sign_up_form"))%>');
$('form').live("click",function() {
$(this).enableClientSideValidations();
});
_sign_in_form.html.erb загружается при отображении user_sessions/new.js.erb
*user_sessions/new.js.erb*
$('#static-form-modal .modal-body').html('<%= j(render(:partial => "user_sessions/sign_in_form"))%>');
Проверка на стороне клиента работает отлично в форме регистрации, а сообщения об ошибках отображаются рядом с полями ошибок.
Проблема в том, что когда я нажимаю кнопку отправки в форме входа, эти сообщения об ошибках проверки появляются рядом с полями ошибок. Очевидно, что проверка на стороне сервера, но я не могу понять, как удалить эти сообщения об ошибках, появляющиеся рядом с полями ошибок.
Кроме того, я не простой формы. Я раскомментировал эти строки в файле initializers/client_side_validations.rb.
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
Любая помощь будет принята с благодарностью.