Jquery AJAX: как отобразить сообщение об ошибке Flash при сбое проверки на стороне сервера? - PullRequest
2 голосов
/ 02 июня 2010

Я использую плагин формы Jquery для отправки формы через ajax. Я установил проверки на стороне сервера в моих моделях. Теперь, когда проверка не пройдена, я хочу отобразить то же самое flash [: error] сообщение для пользователя, используя ajax. Если проверка прошла успешно, я могу отобразить флэш-память [: уведомить], как она доступна после завершения запроса. Как мне показать флеш [: error]?

Ответы [ 2 ]

4 голосов
/ 15 февраля 2011

Возвращает статус ошибки HTML из вашего приложения Rails. В опциях .ajaxForm() установите обратный вызов error для обработки статусов ошибок.

Вот как может выглядеть ваш контроллер Rails:

def update
  @widget = Widget.find(params[:id])

  if @widget.update_attributes(params[:widget])
    respond_to do |format|
      format.js { head :ok }
    end
  else
    respond_to do |format|
      format.js { render :json => @widget.errors.full_messages.join(' '), :status => 400 }
    end
  end
end

А вот как может выглядеть ваш .ajaxForm() звонок (то же самое относится и к .ajaxSubmit()):

$('form.ajax').ajaxForm({
  success: function(data) {
    /* response for success */
  },
  error: function(data) {
    /* Display validation message response from Rails app */
    $('form.ajax').prepend('<p class="errors">' + data.responseText + '</p>');
  }
});

Подробнее о обратном вызове error можно прочитать в jQuery API .
Paydrotalks также имеет хорошее руководство по рефакторингу этих типов ответов.

0 голосов
/ 02 июня 2010

Я нашел это.

http://wiki.github.com/augustl/live-validations/

Если у кого-то есть лучшее решение, пожалуйста, напишите, и я приму его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...