Rails 3 Confirm Delete - в IE8 нажатие кнопки Cancel все равно удаляет - PullRequest
3 голосов
/ 14 июля 2011

После обучения Майкла Хартла. Использование 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.

1 Ответ

0 голосов
/ 19 июля 2011

Убедитесь, что вы включили это в свою голову.

app/views/layouts/application.html.erb

<!DOCTYPE html>
<html>
    <head>
        <%= csrf_meta_tag %>
    </head> 
    <body>
        HtML
    </body>
</html>     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...