Traitement des exceptions d'enregistrement uniques dans un contrôleur

J'ai un modèle d'Abonnement, qui a un index unique sur les champs [:email, :emplacement]. Cela signifie une adresse e-mail peut s'abonner par emplacement.

Dans mon modèle:

class Subscription < ActiveRecord::Base
  validates :email, :presence => true, :uniqueness => true, :email_format => true, :uniqueness => {:scope => :location}
end

Dans ma méthode de création. Je veux gérer l'exception ActiveRecord::RecordNotUnique différemment qu'une simple erreur. Comment pourrais-je ajouter que, dans ce générique de la méthode de création?

  def create
    @subscription = Subscription.new(params[:subscription])
    respond_to do |format|
      if @subscription.save
        format.html { redirect_to(root_url, :notice => 'Subscription was successfully created.') }
      else
        format.html { render :action => 'new' }
      end
    end
  end

source d'informationauteur Dex