2013-06-18 1 views
0

Я использую recapcha gem в моей форме для пользователей. Форма отправляется с помощью ajax с использованием атрибута data-remote = true, а затем создается create.js.erb.Ввод ReCaptcha не отображается в форме после запроса ajax

Идея заключается после представления формы:

  1. если создание пользователя является успешным, чтобы сделать правильное сообщение
  2. если создание пользователя не успешным, чтобы снова вывести с соответствующими ошибками

Проблема заключается в том, что при появлении ошибки (например, неверный код recaptcha) - резюме Поле ввода tcha не отображается.

В настоящем время, в create.js.erb файл У меня есть только следующая строка:

$('#b-register').html('<%=j render partial: 'security_users/sign_in' %>'); 

Почему объект @securirty_user автоматически передается обратно частичным, когда я не использую местные житель? Когда я обрабатываю те же частичные ошибки, которые я использовал изначально, почему отсутствует ответ recaptcha?

ответ

0

Если вы хотите иметь форму «входа» с recapthca, которая использует ajax, вы не должны повторно отображать форму.

Что вы должны сделать, это следующее:

  1. Сделать create.js.erb вид для обработки Ajax запрос и в контроллере добавить format.js.

  2. В новом представлении экземпляр объекта JavaScript, который держит ошибки, как это:

var current_errors = <%= raw @security_user.errors.to_json %>;

Тогда вы свободны для обработки ошибок, как вы хотите - добавить новые элементы отображения текста ошибки или другой, но если есть только одна ошибка:

  1. Очистить поле пароля

  2. Перезагрузите Recaptcha так:

Recaptcha.reload();