Метод: =>: удалить не работает и: подтвердить вариант игнорируется

голоса
8

После возвращения к старому проекту Rails я нашел ни один из разрушающих / удалить ссылки работали и нажав кнопку Отмена во всплывающем окне подтверждения будет по-прежнему представлять ссылку.

Пример моего кода:

<%= link_to 'Delete', admin_user_path(@user), :confirm => 'Are you sure?', :method => :delete %>
Задан 10/12/2008 в 07:13
источник пользователем
На других языках...                            


7 ответов

голоса
3

Эта проблема возникает, если вы используете JQuery, и если нет, то искать что-то вроде этого:

В моем случае, я использовал:

javascript_include_tag: все%>

И это не работает, но когда я положил его любит:

javascript_include_tag: по умолчанию%>

Это сработало!

Ответил 20/01/2011 в 02:21
источник пользователем

голоса
0

Попробуй использовать

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script> 

до

<%= javascript_include_tag "application" %> 

в макете, а также удалить

//= require jquery

линия в вашем application.js .

Это был случай для меня. Не знаю, почему он не работает с оригинальными рельсами jquery.js файла.

Ответил 21/06/2016 в 08:04
источник пользователем

голоса
0

Вот быстрое решение - Просто замените соответствие с данными-Confirm

<%= link_to 'Delete', admin_user_path(@user), 'data-confirm' => 'Are you sure?', :method => :delete %>
Ответил 29/04/2015 в 12:12
источник пользователем

голоса
0

Большую часть времени, это происходит потому, что вы вызываете JQuery код, прежде чем он был загружен, или до того, как элементы страницы существуют.

Для борьбы с этим использовать что-то вроде:

$(document).ready(function () {
  $('*[data-confirm]').click(function(){
    return confirm($(this).attr('data-confirm'));
  });
});
Ответил 06/07/2013 в 18:58
источник пользователем

голоса
0

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

;(function($){
  $(function(){
    $('input.destroy').click(function(){
      return confirm($(this).attr('data-confirm'));
    });
  });
})(jQuery);

Вы просто должны быть уверены, чтобы добавить класс = «уничтожить» для каждого элемента, например:

= button_to 'Delete', polygon, :method => :delete, :class => "destroy", :confirm => "Are you sure?"
Ответил 26/04/2013 в 06:57
источник пользователем

голоса
0

В моем случае это , казалось, проблема со старой комбинацией прототипа и rails.js. Ответ от этого вопросов привел меня к тому , что: : подтвердить выбор в Rails игнорируется при использовании Rails 3 и JQuery UJS

Так что я скачал последний rails.js из https://github.com/rails/prototype-ujs/raw/master/src/rails.js и последний прототип от https://ajax.googleapis.com/ajax/libs /prototype/1.7.0.0/prototype.js .

Теперь кажется, что все работает, как ожидалось.

Ответил 17/02/2011 в 03:48
источник пользователем

голоса
0

Крис, Привет. У меня такая же проблема. Я удалил Firebug и проблема сохраняется. Я прочитал от другого пользователя, что ему нужно, чтобы перезапустить Firefox, что не работает. Некоторые сказали попробовать Safari, что не работает.

В конце концов, это был новичком вещь:

У меня есть помощники, чтобы вставить значок, как edit_icon, который возвращает хороший тег изображения значок редактирования и т.д.

Один из этих вспомогательных методов был метод delete_icon, где я писал так:

Защиту delete_icon (объект = ноль) link_to IMAGE_TAG ( 'иконки / delete.jpg': ширина => 20,: граница => 0), объект: подтвердить => 'Вы уверены?',: метод =>: удалить конец

Это была (хорошая) попытка DRY, но лучше бы, если бы я только что Защита delete_icon (объект), а не объект = ноль, потому что это делает его более четким, когда я называю это, что я должен передать ему объект, чтобы уничтожить , Вызов же метод с объектом должен быть удален работал для меня.

Короче говоря: перепроверить свои вспомогательные методы, если вы пытаетесь DRY.

Ответил 06/07/2010 в 15:20
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more