: опция подтверждения в Rails игнорируется при использовании Rails 3 и jQuery UJS - PullRequest
3 голосов
/ 21 мая 2010

В моем приложении Rails есть таблица проектов, каждый из которых имеет ссылку для удаления, например:

<%= link_to "Delete", project, :confirm => "Are you sure?", :method => :delete %>

Однако запрос на удаление отправляется, даже если пользователь нажимает «Отмена» в диалоговом окне.

Есть идеи как это исправить? Я использую Rails 3, Beta 3, с библиотекой jQuery и сопутствующей библиотекой jQuery UJS.

Ответы [ 4 ]

5 голосов
/ 27 мая 2010

Вам нужно получить более свежую версию rails.js. У меня была та же проблема, используя ту же настройку, что и у вас. Когда я обнаружил старые и новые версии, я обнаружил, что обработчик подтверждения в старой версии был закомментирован. Новая версия решает проблему.

3 голосов
/ 28 августа 2010

Загрузите rails.js из (http://github.com/rails/jquery-ujs/blob/master/src/rails.js), если вы используете jQuery и поместите его в папку p ublic / javascripts .

Затем убедитесь, что у вас есть следующее в заголовке вашего шаблона

<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js" %>
<%= javascript_include_tag 'rails' %>
<%= csrf_meta_tag %>

И это все =)

0 голосов
/ 21 мая 2010

Вам нужно будет опубликовать больше информации о ваших рельсах и больше кода. Поскольку link_to правильно работает с опцией :confirm.

Я могу предложить две вещи,

  1. Попробуйте link_to "Delete", project, { :confirm => "Are you sure?", :method => :delete } (ранние версии рельсов не справлялись с опциями без {} хорошо.
  2. Посмотрите html, сгенерированный для этого фрагмента, и посмотрите, есть ли у него javascript, если нет, попробуйте поместить старый link_to с подтверждением в другой части вашего кода и проверьте это.
0 голосов
/ 21 мая 2010

Я думаю, что вы используете ссылку в строке таблицы. Может случиться, что вы используете функцию onclick в строке таблицы, поэтому при нажатии на ссылку «Удалить» появляется всплывающее окно с подтверждением и при нажатии кнопки «Отмена» запускается функция onclick.

Это предположение, но оно может вам помочь. Если это не так, пожалуйста, отредактируйте ваш вопрос с соответствующим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...