Подтвердить что ты не робот

Link_to delete url не работает

У меня есть ссылка link_to удалить url в моем приложении

<%=link_to "Delete",blog_path(@blog.id), :method => :delete, :class => "delete", :confirm => "Are you sure ?"%>  

Кажется, что это не работает. Когда я нажимаю этот URL-адрес, он просто приводит меня к пути к шоу. Может кто-нибудь скажет мне, как это исправить. Спасибо.

4b9b3361

Ответ 1

Используете ли вы jQuery? Если это так, я думаю, проблема может заключаться в том, что вы используете jQuery без обновленного файла rails.js.

Скачать rails.js здесь: https://github.com/rails/jquery-ujs/raw/master/src/rails.js Поместите его в свой каталог javascripts, перезаписав rails.js, который приходит по умолчанию с рельсами.

Добавьте строку включения javascript, чтобы включить ее.

  <%= javascript_include_tag "rails" %>

Поместите это после вашего тега JQuery include. Вероятно, вы также захотите исключить значения javascript по умолчанию, если вы не планируете использовать прототип.

Я включил jQuery UI в мое приложение, я обнаружил, что удаление теперь работает как шоу, но после выполнения вышеописанной проблемы.

Ответ 2

Убедитесь, что эти строки отображаются в application.js:

 //= require jquery
 //= require jquery_ujs

Ответ 3

Убедитесь, что вы включили java script. В противном случае :method => :delete действует так же, как показано в Rails.

Ответ 4

Если вы используете спокойную маршрутизацию для блогов, тогда должно работать следующее:

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

Ответ 5

Вы можете попробовать с помощью 'data-method' вместо метода.

<%=link_to "Delete",blog_path(@blog.id), 'data-method' => :delete, :class => "delete", :confirm => "Are you sure ?"%> 

Вы можете проверить jquery_ujs.js следующий фрагмент кода:

// Handles "data-method" on links such as:
// <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>

Ответ 6

Чтобы link_to работал с методом delete, Rails нуждается в ненавязчивом скриптовом адаптере для jQuery.

  • Убедитесь, что ваш Gemfile имеет

    gem 'jquery-rails'

  • Убедитесь, что app/assets/javascripts/ application.js имеет

    //= require jquery
    //= require jquery_ujs

  • Убедитесь, что ваше приложение /views/layouts/ application.html.erb имеет

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

    внутри тега head. Удалите раздел 'data-turbolinks-track' => true, если вы не планируете использовать Turbolinks.

Ответ 7

вы должны использовать

<%=button_to "Delete",blog_path(@blog.id), :method => :delete, :class => "delete", :confirm => "Are you sure ?"%>