I have the following link_to delete url in my app
<%=link_to "Delete",blog_path(@blog.id), :method => :delete, :class => "delete", :confirm => "Are you sure ?"%>
It does not seem to be working.When I click this url, it just takes me to the show path.Can someone please tell me how to fix this. Thanks.
Ensure that you have java script turned on. Otherwise
:method => :delete
acts just as show in Rails.In order for
link_to
to work with thedelete
method, Rails needs the unobtrusive scripting adapter for jQuery.Make sure that your Gemfile has
gem 'jquery-rails'
Make sure that app/assets/javascripts/application.js has
//= require jquery
//= require jquery_ujs
Make sure that your app/views/layouts/application.html.erb has
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
inside the
head
tag. Remove the'data-turbolinks-track' => true
section if you don't plan to use Turbolinks.Make sure these lines appear in
application.js
:Are you using jQuery? If so, I think the problem could be that you are using jQuery without the updated rails.js file.
Download rails.js here: https://github.com/rails/jquery-ujs/raw/master/src/rails.js Drop it in your javascripts directory, overwriting the rails.js that comes default with rails.
Add a javascript include line to include it.
Put this after your Jquery include tag. You probably also want to disinclude the javascript defaults if you don't plan on using prototype.
I included jQuery UI in my application, I found that delete is now working as show, but after doing above Resolved Issue.
You can try with 'data-method' instead of :method.
You can check on jquery_ujs.js the following piece of code:
If you're using restful routing for blogs, then the following should work: