Forum: Ruby on Rails Destroy method link_to show

Posted by Soichi Ishida (soichi)
on 2012-11-22 04:53
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
Posted by Colin Law (Guest)
on 2012-11-22 10:30
(Received via mailing list)
On 22 November 2012 03:53, Soichi Ishida <lists@ruby-forum.com> wrote:
>
>  <% @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
Posted by Soichi Ishida (soichi)
on 2012-11-22 10:44
> link_to 'Delete',  give, confirm: 'Are you sure?', :method => :delete
> should work.

Thanks! It worked!


soichi
Posted by Purushothaman Raju (Guest)
on 2012-11-22 15:21
(Received via mailing list)
<%= link_to '*Destroy*',  {:controller => :plans,  :action =>
:destroy, :id => give.id}, confirm: 'Are you sure?', :class=>'btn
btn-mini'  %>

see if this works
Posted by Colin Law (Guest)
on 2012-11-22 15:24
(Received via mailing list)
On 22 November 2012 08:22, Purushothaman Raju <purush97k@gmail.com> 
wrote:
> <%= link_to 'Destroy',  {:controller => :plans,  :action =>

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

Colin
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.