Rails cancan und State Machine - Zustände autorisieren

Ich habe die beiden großartigen Edelsteine ​​state_machine und cancan kürzlich in meiner Rails-Anwendung verwendet, bin aber gespannt, wie ich sie am besten sauber integrieren kann. Gegenwärtig habe ich Schaltflächen mit Statusübergängen versehen, die Aktionen betreffen, die vom Controller autorisiert wurden. Das funktioniert einwandfrei, ich kann einschränken, wer diese Aktion ausführen darf.

Ich möchte dem Benutzer die Möglichkeit geben, den Objektstatus auch im Bearbeitungsformular zu ändern. Ich habe bemerkt, dass state_machine den state_event-Schlüssel im Hash mit dem Wert der auszuführenden Aktion aufnimmt (so werden alle state_machines-Rückrufe durchlaufen). Dies kann mit dem params-Hash in update_attributes übergeben werden. Fantastisch.

Es sollten jedoch nur bestimmte Benutzer in der Lage sein, das Objekt in bestimmte Zustände zu ändern. Wie würde ich das umsetzen? Die Idee ist das

params['state_event']=='move_to_x'

Sollte für einige Benutzer aussteigen, für andere jedoch erlaubt sein. Es betrifft mich auch, da ein gescheiter Benutzer, bis ich dies implementiere, irgendetwas innerhalb eines Zustandsereignisses posten kann, selbst wenn es nicht erlaubt sein sollte !.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage