После обучения Майкла Хартла. Использование Rails 3.0.9 под Ubuntu. Следующий заголовок находится в application.html.erb:
<head>
<title><%= title %></title>
<%= csrf_meta_tag %>
<%= render 'layouts/stylesheets' %>
<%= javascript_include_tag :defaults %>
</head>
Нет jQuery. Учебное пособие В листинге 10.38 указано, что действие Delete вызывается следующим образом:
<%= link_to "delete", user, :method => :delete, :confirm => "You sure?",
:title => "Delete #{user.name}" %>
Вот пример сгенерированного HTML:
<a href="/users/13" data-confirm="You sure?" data-method="delete"
rel="nofollow" title="Delete Mylene Gaylord">delete</a>
Я проверил подтверждение в трех браузерах:
- Firefox 3 под Ubuntu: «ОК» удаляет пользователя, «Отмена» не (хорошо)
- Firefox 5 под Win7: «ОК» удаляет пользователя, «Отмена» не (хорошо)
- IE8 под Win7: «ОК» и «Отмена» удаляют пользователя (плохо!)
Почему при использовании IE8 функция Cancel вызывает код удаления и как его исправить? Есть ли способ проверить, что Cancel отменяет действие, независимо от того, какой браузер используется?
Обновление от 29.09.2011: после обновления до Rails 3.1 и преобразования из Prototype в jQuery (раздел Tutorial 13.1.4 ) IE8 работает правильно: нажатие кнопки Cancel отменяет действие удаления. Однако это не отвечает первоначальному вопросу о том, почему IE8 не может отменить удаление из Rails 3.0.9 с помощью Prototype.