Вот что я хотел бы сделать:
- Отображение диалогового окна, содержащего форму для создания новой записи (например, пользователя)
- Формаотправлено через AJAX.
- Получить ответ, который может быть либо той же формы с ошибками проверки, либо новой записи в формате JSON.
Некоторая дополнительная информация:
- Я использую партиалы для рендеринга формы.Поэтому, когда диалоговое окно впервые отображается, я делаю ajax-вызов, чтобы получить пустую разметку формы, и когда форма отправляется, я буду использовать ту же часть, если форма имеет ошибки проверки.
- Если ответ возвращается и возникают ошибки проверки, я просто хочу заменить существующую разметку формы на возвращенную разметку.
- Если ответ возвращается и ошибок проверки нет, то язакроет диалоговое окно и возьмет отформатированный объект JSON и внесет некоторые другие изменения в страницу.
Некоторые части этой системы работают нормально.Проблема в том, что, если мне удастся вернуть обратно отформатированный объект JSON вместо HTML, я по определению никогда не буду уверен, какой будет тип возвращаемого значения.Сначала я всегда возвращал JSON из вызовов AJAX.Если форма имеет ошибки проверки, возвращаемый JSON будет иметь свойство с именем "html", которое будет содержать обновленную разметку формы.Если нет ошибок валидации, то возвращенный JSON будет иметь свойство с именем «data», которое содержит вновь созданный объект.
Я думаю, что мое решение будет работать, но мне интересно, если кто-нибудь еще придумал что-то ещеэлегантный.Я полагаю, что этот основной поток должен быть распространен в других приложениях, поэтому я не могу быть единственным, кто ищет решение этой проблемы.