Rails の工夫: after_confirmation
ユーザーが確認されたかどうかを確認する after_save コールバックを定義するだけで、確認された場合はメールが送信されます。
いくつかの CPU サイクルを節約したい場合は、Devise ConfirmationsController を次のようにオーバーライドできます。
class ConfirmationsController < Devise::ConfirmationsController
def show
self.resource = resource_class.confirm_by_token(params[:confirmation_token])
if resource.errors.empty?
set_flash_message(:notice, :confirmed) if is_navigational_format?
sign_in(resource_name, resource)
# Send the user a second email
send_post_confirmation_email
respond_with_navigational(resource){ redirect_to after_confirmation_path_for(resource_name, resource) }
else
respond_with_navigational(resource.errors, :status => :unprocessable_entity){ render :new }
end
end
end