Ich habe gerade von CanCan zu Pundit gewechselt. Ich bin unsicher, was ein paar Dinge sind und wie Pundit am besten genutzt wird. Beispielsweise.Wie benutzt man Pandit Scopes?
Wenn Sie eine Ressource haben, die mehrere Elternobjekte haben kann, sagen wir zum Beispiel, dass ein Ziel einem Schüler und Lehrer gehört. Daher kann ein Schüler viele Ziele haben und ein Ausbilder kann viele Ziele haben. In einer Controller-Indexaktion könnten Sie Folgendes tun:
Parameter sind in Richtlinien nicht verwendbar, daher muss die Logik hier ausgeführt werden. Ich denke. Was ich sagen kann, wenn Sie das policy_scope überspringen, erhalten Sie einen unautorisierten Fehler beim Anzeigen der Indexseite für Ziele.
Möchten Sie:
@goals = policy_scope(@account.goals)
ODER
@goals = policy_scope(Goal.scoped).where(account_id: @account.id)
Was passiert, wenn Sie ein Bündel enthält in der Mischung zu werfen?
@example = policy_scoped(@school.courses.includes(:account => :user, :teacher))
Oder wenn benötigt, um zu bestellen ... ist das korrekt? policy_scope (Issue.scoped) .order ("created_at desc")
Bei der Verwendung von Bereichen: Was ist: Bereich hier? Ist: scope eine Instanz des Modells, das evaluiert wird? Ich habe versucht, seine Attribute über: Scope, aber nicht funktioniert.
class Scope < Struct.new(:user, :scope)