Je dois autoriser un projet basé sur les invitations qu'un fournisseur a obtenu. Le fournisseur a un champ "user_id".Pundit Authorize d'un autre modèle
project.rb
has_many :invites
has_many :suppliers, :through => :invites
project_policy.rb
class ProjectPolicy < ApplicationPolicy
attr_reader :user, :project
def initialize(user, project)
@user = user
@project = project
end
def show?
##need help on the next line##
if project.joins(:invites).joins(:suppliers).pluck("suppliers.user_id") == user.id
return true
else
return false
end
end
end
Comment puis-je montrer que les projets appropriés en fonction de la user_id
dans la table des fournisseurs? Si cela doit être dans la portée, alors comment puis-je vérifier le suppliers.user_id
dans la portée?
Désolé. Je ne comprends pas votre question. Est-ce que ça fonctionne comme du code? si maintenant. Quel est le problème. Pourriez-vous nous montrer le résultat de la requête? –
Ouais, j'ai les relations de modèle mis en place, mais en essayant de comprendre ce qu'il faut mettre dans la politique pundit 'show? 'Afin qu'il ne permette l'accès qu'aux projets – HoosierCoder