Meilleure façon de faire respecter les autorisations - contrôleur ou contrainte ?

Je pense que vous avez besoin d’une méthode de garde pour vérifier si un utilisateur est autorisé à effectuer une action donnée. Par exemple, can_upgrade_server?.

De plus, une fois cela fait, vous pouvez utiliser la méthode guardian.ensure_can_upgrade_server! qui vérifie la condition et lève une exception, ce qui est exactement ce que vous recherchez, selon moi.