Я подключился к событию beforeSend формы, сохранил объект xhr как часть данных формы и прервал его, если новый запрос помещен в очередь:
$('form').bind("ajax:beforeSend", function(evt, xhr) {
console.log('Enqueued new xhr request');
var prevXhr = $(this).data('current-xhr');
if (prevXhr) {
prevXhr.abort();
console.log('Aborting previous xhr request');
}
$(this).data('current-xhr', xhr);
});
И вы все еще можетеиспользуйте опцию :remote => true
в простой форме.