Ajaxの周りで。

Rails3ではPrototypeHelperが廃止されて、form_for_remoteとかが消えた。その代わり、form_forに

:remote => true

を渡すことでAjaxなフォームが作れるようになる。
ただし、今までnew Ajax.Requestする前やリクエストの完了後などにJSで処理をさせる場合に使われていた、

:before => "function(){alert('before')}"

のような引数を取るようになったわけじゃないので、こうする。
まず、form_forを普通に書く

<%= form_for(@image_set, :remote => true) do |f| %>
  〜なんちゃら〜
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

で、このフォームのIDが'new_image_set'になるとして、以下のようなJavaScriptを追加。

$('new_image_set').observe('ajax:before', function(){alert('before')});

prototype.jsを使っている場合。余談ですが、これ書く前にあちこち調べたところ、見つかるサンプルがことごとくjQueryの場合でびっくりしました。jQuery大人気。

これで、Ajax.Requestが実行される前にalert('before')が実行されます。
他には以下のようなイベントが発生します。