Go to Google Groups Home    Low Pro
Re: Adding a delete confirmation

Jarkko Laine <jar...@jlaine.net>

On 25.1.2008, at 3.34, Matt Aimonetti wrote:

> Remote.DeleteLink = Behavior.create(Remote.Base, {
>   onclick : function() {
>     var options = Object.extend({ url : this.element.href, method :  
> 'delete' }, this.options);
>     if (confirm('Are you sure?')){
>       return this._makeRequest(options);
>     }else{
>       return false;
>     }
>   }
> });

> don't change your route, a delete action should not be a GET but a  
> DELETE.

I think he's using the delete action (note the name) as an  
intermediary action to hold a form with DELETE method pointing to the  
_destroy_ action that actually deletes the record. That's pretty much  
the only way to use an accessible link to perform a destructive action  
afaik.

> On 1/24/08, KJoyner <K...@kjoyner.com> wrote:
> <snip>
> Remote.Delete = Behavior.create( Remote.Base, {
>   onclick: function( event ) {
>     if ( confirm( 'Are you sure?'  ) ) {
>       var destroy_url = this.element.href.gsub ( '/delete$', '' );
>       options = Object.extend( { url: destroy_url, method: 'delete' },
> this.options );
>       return this._makeRequest( options )
>     }
>     return false;
>   }
> });

> Event.addBehavior( {
>   '.delete' : Remote.Delete
> });

> The onclick gets executed but it is not working correctly. Any help
> would be appriciated.

So what happens? Does the request get to Rails? Have you used Firebug  
to debug what happens inside the behaviour (e.g. what does options  
look like when you make the request)?

--
Jarkko Laine
http://jlaine.net
http://dotherightthing.com
http://www.railsecommerce.com
http://odesign.fi