Destroy method link_to show

Rails 3.1.3

I have User model and Plan model

User has the following association

  has_many :gives, :class_name => "Plan", :foreign_key => :give_id, :dependent => :destroy

And a view generates

<% @user.gives.each do |give| %>    ...    <li><%= link_to 'Delete', {:controller => :plans, :action => :destroy, :id => give.id}, confirm: 'Are you sure?', :class=>'btn btn-mini' %></li>    ...

It is not Plan's view, so I specified :controller as well.

This Delete link somehow leads to Plan show action. It does not delete it as I want it to.

Do you see any problem here ?

Honestly, I don't know what else to show you in order to find the problem. If more information is needed, please let me know.

Thanks

soichi

Rails 3.1.3

I have User model and Plan model

User has the following association

  has_many :gives, :class_name => "Plan", :foreign_key => :give_id, :dependent => :destroy

And a view generates

<% @user.gives.each do |give| %>    ...    <li><%= link_to 'Delete', {:controller => :plans, :action => :destroy, :id => give.id}, confirm: 'Are you sure?', :class=>'btn btn-mini' %></li>    ...

It is not Plan's view, so I specified :controller as well.

I think the reason that it is not working is that you have not specified :method => delete. If you look at one of your delete links that works you will find that is specified. However there is no need to specify the controller or action, rails will work out what to do based on the type of the object, it is nothing to do with which view you are in, so link_to 'Delete', give, confirm: 'Are you sure?', :method => :delete should work.

Colin

link_to 'Delete', give, confirm: 'Are you sure?', :method => :delete should work.

Thanks! It worked!

soichi

'Destroy' is just the text that appears on the link. It will not affect the operation.

Colin