Приложение будет по всей вероятности ловить те перевызванные исключительные ситуации выше, стек вызовов и так перебросок их признают что выше обработчик прерывать и обрабатывать их как соответствующих. Приложению довольно свойственно иметь обработчик исключений верхнего уровня, который регистрирует или сообщает об ожиданиях.
Другая альтернатива - то, что кодер был ленив и вместо того, чтобы ловить просто набор исключений, которые они хотят обработать, они поймали все и затем повторно бросили только тех, они не могут на самом деле обработать.
Вы можете удалить:
:confirm => 'Are you sure?'
и заменить его настраиваемым событием onclick, например:
<%= link_to(image_tag('/images/bin.png', :alt => 'Remove'), @business, :class => 'delete', :onclick => 'someJSFunction', :id => 'trash') %>
Затем в своем application.js (или любом другом файле JS) выполните:
function someJSFunction(){
if(confirm("Are you sure?"){
//they clicked yes.
} else {
//they clicked no.
}
}
Извините, у меня сейчас нет времени проверить это, но должен работать.
remove: confirm => 'Вы уверены?'
$('a.delete').click (function(){
if(confirm("Are you sure?")){
var row = $(this).closest("tr").get(0);
$.post(this.href, {_method:'delete'}, null, "script");
$(row).hide();
return false;
} else {
//they clicked no.
return false;
}
});
Спасибо, ребята, я использовал следующий учебник для настройки jquery с рельсами:
http: //www.notgeeklycorrect. com / english / 2009/05/18 / beginners-guide-to-jquery-ruby-on-rails /
при использовании вместе с этим руководством я использовал следующий код:
Query.fn.deleteWithAjax = function() { this.removeAttr('onclick'); this.unbind('click', false); this.click(function() { if(confirm("Are you sure?")){ $.delete_($(this).attr("href"), $(this).serialize(), null, "script"); return false; } else { //they clicked no. return false; } }) return this; };