Here's what I'm doing currently. To me it's the best and less obfuscated approach:
after_filter :send_create_email, :only => :create
after_filter :send_update_email, :only => [:update, :update_password]
private
def send_create_email
UserMailer.create(@user).deliver if @user.valid?
end
def send_update_email
UserMailer.update(@user).deliver if @user.valid?
end
Nathans approach was good until I needed non-standard method names.