Ваш вызов ajax должен выглядеть примерно так:
... doing stuff before ...
$.ajax(
url:'url-to-script',
success: function(data) {
var json = JSON.parse(data);
$('#hidden-field').val(json); // set a hidden field in your form
$('#from-id').submit();
}
);
$('#submit-button').attr('disabled', 'true'); // disable the button
// set some spinny animation to notify the user that you are waiting.
// time out after a while if you don't get a response
... doing stuff after ...
В основном мы запускаем событие ajax, отключаем кнопку и уведомляем пользователя, которого вы ждете. Когда вызов возвращается, ваш метод обратного вызова отправляет форму на рельсы. Вы также можете установить тайм-аут для вызова AJAX и позволить пользователю повторить отправку, если это необходимо. Вы можете справиться с ошибкой, если захотите.