From: John Griffiths Date: 2007-09-20T06:00:24+09:00 Subject: Re: deleting an item with ajax sorted... def destroy_item Item.find(params[:id]).destroy @list = List.find(params[:list]) render :partial => 'item_list', :object => @list end <% for @item in @list.items %>
  • <%= @item.body %> <%= link_to_remote "[Destroy]", :update => "items", :url => { :action => "destroy_item", :id => @item.id, :list => @item.list_id } %> <% end %> little did i know in rails you can actually send more than one parameter on an action. so here, the first is the :id of the item you want to delete, and the :list is the list it's connected to, which you'll use to regenerate in the show action / page. enjoy! John Griffiths wrote: > Thanks Shai, I spent a bit last night going through all my rails books > trying to piece together in my mind how the form_remote_tag works, > learnt a lot. > > Understand what your saying and see where I'm going wrong, will try > changing it. > > And yes, i'll post in the appropriate forum in the future. > > Thanks, your a pal. > > > John. > > Shai Rosenfeld wrote: >> John Griffiths wrote: >>> hi again, I managed to work out how to create a new item via ajax and >>> the form_remote_tag, however don't know how to delete an item from the >>> table. >>> >>> here's the code so far, doesn't work, keeps on popping up saying null.id >>> >>> >>> >>> >>> _item_list.rhtml >>> >>> <% for item in @list.items %> >>> .... >>> <% end %> >>> >>> def destroy_item >>> Item.find(params[:id]).destroy >>> render :partial=>'list' >>> end >> >>> found (e.g. it doesn't know which item to destroy). >> ..no, the item was destroyed, but when it tried rendering the partial >> again (via ajax Update) there was no item defined, as yo didn't add a >> @list variable, therefore there is no item in the loop, when it is >> rendered secondly. >> >> add a @list variable to the destroy_item action and u should be ok. >> btw, better to post on the ruby on rails forum (forum#3 rather than >> forum#4) -- Posted via http://www.ruby-forum.com/.