2013-10-25 6 views
29

Вот мои рельсы link_toрельсы подтвердить перед удалить

<%= link_to 'Delete',url_for(action: :delete,id: @user.id),data: {confirm: "Are you sure?"} %> 

Я попытался выше метод, но он непосредственно удаление без предупреждения сообщения. Что я сделал неправильно. Может ли кто-нибудь это исправить.

+0

jquery.js входит в ваше приложение? – Debadatt

+1

@Debadatt Да включенный – overflow

ответ

0

Проверьте следующую ссылку:

<%= link_to 'Delete',url_for(action: :delete,id: @user.id), confirm: "Are you sure?" %> 
45

Попробуйте

<%= link_to 'Delete',url_for(action: :delete,id: @user.id),method: :delete, data: {confirm: "Are you sure?"} %> 
+1

Для чего это стоит, хэш-данные 'data' - единственный вариант в предлагаемых здесь решениях, которые в конечном итоге работают для меня. Rails 4.1.2, Ruby 2.1.2p95, jquery-rails 3.1.1. Тем не менее, в других приложениях я использовал параметр 'confirm' вне хэша' data', как аргумент link_to, и он полностью сработал. Что дает? –

+1

Это немного помешало мне в Rails 4.1, не помещая подтверждение в хэш-данные, атрибут отображается как «подтвердить» вместо правильного «подтверждения данных» –

+0

. Они изменили это на подтверждение данных в Rails 4? –

1
  1. Я думаю, вы должны использовать: вариант метода

    <%= link_to 'Delete',url_for(action: :delete,id: @user.id), method: :delete, confirm: "Are you sure?" %>

  2. Это вероятно, лучше кнопки (и формы) использовать для такого рода действий

+1

Пробовал, но не работал, когда я проверяю, я могу видеть 'data-confirm =" Вы уверены? "И' data-method = "delete" ' – overflow

+0

Есть ли ошибки в консоли JS? –

+0

Ошибок в консоли также нет – overflow

1
link_to('Delete', {controller: :controller_name, id: id, action: :action_name}, confirm: "Are you sure you want to delete this?", method: :delete) 
0

Убедитесь, что вы есть и библиотеки JQuery и JQuery драйвер для Rails включены. Драгоценный камень jquery-rails позаботится об обоих из них в более поздних версиях Rails, из того, что я знаю.

Кроме того, для улучшения шансов на совместимость с будущими версиями драйвера jQuery переместите опцию :confirm за пределами :data и пусть жемчужина jquery-rails решит, что с ней делать.

10

Ответ на рельсы 4.1.8 (вопрос не включает в себя версию)

и стандартный ресурс (также не указан)

  1. //= jquery_ujs должен быть включен в application.js (возможно, отсутствующий)
  2. Ссылка user_path(@user)
  3. указать :method => :delete (отсутствует)
  4. подтверждени сообщение в :data (был хорошо)
  5. уничтожить метод в контроллере (не удалять)

= link_to т (: удалить), user_path (@user),: метод =>: удалить,: класс = > "БТН БТН-опасности",: данные => {: подтвердить => т (: are_you_sure)}

URL-адрес в этом вопросе, кажется, создает GET, а не метод удаления. Это может работать, если: был указан метод. imho, к сожалению, для этого нет отдельного помощника URL-адреса.

+0

// = jquery_ujs добавлен после // = jquery, и теперь он работает как шарм –

Смежные вопросы