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