最初我有1个哈希只会返回表单的错误。但是现在我有两个可以包含错误的哈希。现在,我想查看它们并将其显示给用户。以前我只有1,那是有效的是这段代码:
<script>
$("#payment-form").on("ajax:error", function(e, data, status, xhr) {
App.OrderRequests.throwFormError();
$('#payment-form').render_form_errors(data.responseJSON)
});
$.fn.render_form_errors = function(errors) {
var form;
form = this;
this.clear_form_errors();
return $.each(errors, function(field, messages) {
return form.append('<span class="help-block">' + $.map(messages, function(m) {
return m.charAt(0).toUpperCase() + m.slice(1);
}).join('<br />') + '</span>');
});
};
$.fn.clear_form_errors = function() {
this.find('.form-group').removeClass('has-error');
return this.find('span.help-block').remove();
};
</script>
这已经通过javascript推动了我的专业知识。现在我返回的典型JSON响应是这样的:
"{\"base\":[\"Your card's security code is incorrect.\"]}"
但是现在我想要像这样返回JSON(因为我在同一个表单上保存到两个不同的模型):
"{\"address\":{},\"card\":{\"base\":[\"Your card's security code is incorrect.\"]}}"
所以我想基本上打印可能隐藏在地址或卡内的错误。所以我需要调整代码来检查这些,但是我不知道如何实现它。