Rails 3 has introduced Unobtrusive JavaScript (UJS), which means that the html generated for certain elements no longer contains JavaScript for various client side actions. It relies instead on a declarative markup and runtime binding.

A common use for this is to pop up a dialog to confirm a delete action.

<a rel="nofollow" data-method="delete" data-confirm="Are you sure?"
 class="delete" href="/user/1">Delete</a>

This way you can choose which JavaScript framework fits you best. In order to use it, you need to install a Rails JavaScript driver for your framework of choice. For instance, you can install the jQuery one from GitHub http://github.com/rails/jquery-ujs

Unfortunately, the latest version of jquery-ujs has a bug that can have severe consequences. The confirmation dialog pops up but the user selection is ignored, resulting in the action always being performed.

There is tentative patch waiting to be reviewed.


I've applied it and it seems to fix the problem.