Rails AJAX Сообщение об ошибке - PullRequest
0 голосов
/ 02 ноября 2010

У меня есть форма, которая отправляется через jQuery AJAX ...

Модель имеет поле validates_presence_of для поля, если это поле пустое, рельсы плюются на XHR :role_idNot Defined.

Я научился настраивать это, выполнив:

 validates_presence_of(:role_id, :message=> "Select a role to continue.")

Но это наплевать: роль role_IDSelecta продолжится. Итак, я нашел это, которое может помочь, IDK еще:

<% errors.each do |attribute, message| -%>
    <% if message.is_a?(String)%>
        <li><%= message %></li>
    <% end %>
<% end -%>

Мой вопрос: как мне обрабатывать этот тип туда-сюда с удаленной формой в Rails 3? Я хочу отправить с AJAX и каким-то образом отправить обратно сообщение об ошибке с AJAX?

Идеи? Плагины?

Еще раз спасибо

1 Ответ

2 голосов
/ 02 ноября 2010

Ну ... это не Rails, который выплевывает. Это твой контроллер. Поэтому, когда ваша модель не проходит проверку, вы можете плюнуть на что угодно. Вероятно, у вас есть метод создания и обновления, и каждый из них должен обрабатывать XHR. Важно, чтобы вы сами решили, как вы хотите общаться с браузером.

Можно утверждать, что неудачная проверка должна создать ответ (4xx) об ошибке, но это действительно HTTP, а не код ответа приложения. В этом случае ваше приложение обработало запрос должным образом, поэтому ему необходимо вернуть значение 200. Таким образом, обработчик ошибок Ajax не будет вам особенно полезен - это реальные ошибки, связанные с отсутствием страниц, серверными ошибками и т. Д.

Скорее, ваш обработчик успеха должен проверить флэш-хэш, чтобы выяснить, присутствуют ли ошибки, и, если это так, поместить текст ошибки в какое-то подходящее место на странице для вашего пользователя.

Один плагин, который выглядел многообещающе, был Stickies (http://github.com/JokerCatz/stickies). В течение какого-то времени над проектом не было никаких действий, но если он не работает с вашей версией Rails, он не должен быть слишком сложным, чтобы его раскошелиться довести его до текущих уровней Rails.

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