Je suis créé nouvelle application de rails et je veux limiter les actions de l'utilisateur basé sur une seule condition comme dossier peut être modifiable par le propriétaire (created_by) et le sous-propriétaire (ajouté par le propriétaire). J'ai des modèles comme App, utilisateur et contrôleur comme AppController. Dans AppController, j'ai plus d'une action comme index, créer, afficher, mettre à jour, supprimer. J'ai une politique comme AppPolicy. Ici, j'ai besoin de créer une seule méthode pour vérifier toutes les actions, mais par défaut, chaque action nécessite une autre méthode comme action_name? dans la classe de politique.Est-il possible d'utiliser une méthode unique pour autoriser l'action de plusieurs contrôleurs dans Rails Pundit?
Exemple
Code existant:
class AppPolicy < ApplicationPolicy
class Scope < Scope
def resolve
scope
end
end
def action1?
record.users.include? (user)
end
def action2?
record.users.include? (user)
end
def action3?
record.users.include? (user)
end
end
De code ci-dessus, nous pouvons voir une même condition réside dans toutes les méthodes. Je dois utiliser une seule méthode pour vérifier action1, action2, action3. Je ne sais pas ce qui est possible ou pas dans Pundit.
ce conseil fait peu à aucun sens et même pas une réponse, car OP utilise Pundit. –