I am new to RoR and I am writing a small blog application. I have added a Destroy / Delete link to the post index, but when I click this delete link the show action is fired. The log seems to confirm this:
Started GET “/posts/2” for xxx.xxx.xxx.xxx at 2014-03-31 15:51:03 +0000
Processing by PostsController#show as HTML
Parameters: {“id”=>“2”}
Post Load (0.1ms) SELECT “posts”.* FROM “posts” WHERE “posts”.“id” = ? LIMIT 1 [[“id”, “2”]]
Comment Load (0.1ms) SELECT “comments”.* FROM “comments” WHERE “comments”.“post_id” = ? [[“post_id”, 2]]
Rendered posts/show.html.erb within layouts/application (9.0ms)
Completed 200 OK in 120ms (Views: 117.3ms | ActiveRecord: 0.2ms)
My destroy method in the controller is:
def destroy
@post = Post.find(params[:id])
@post.destroy
redirect_to posts_path
end
The code in the index view is:
<%= link_to 'Destroy', post, method: :delete, data: {confirm: 'Are you sure?'} %>
Would anyone have any idea what I might be missing here?
I think here is the error: <%= link_to ‘Destroy’, post, method: :delete, data: {confirm: ‘Are you sure?’} %>
= link_to ‘Destroy’, post_path(post), bla bla bla
@Peter Heylin Check the console if any there are any javascript errors. And view page source, to see if jquery-ujs is being loaded. If it’s not add it in the application.js as manifest.
The format of your link looks fine, I have to agree this looks like a javascript issue. When you say, “no javascript errors in the console”, what console are you looking at? Javascript errors would appear in the browser. If you use Firefox, Firebug is a great tool for this. If you use Safari, in Preferences > Advanced check the box “Show Develop menu in menu bar”. If you use Chrome, there are similar tools under View > Developer. Any of these tools will allow you to view any javascript errors. If you use Internet Explorer, sorry I can’t help you. I’m sure someone else can.
It does look like you have the jquery_ujs file properly loading. You might want to check a couple of things. First, make sure the jquery_ujs gem is current. Second, make sure you do NOT have a jquery_ujs.js file in the app/assets/javascripts folder. You want this to be supplied by the gem.