das nächste Modell mit dem AASM gem Gegeben:AASM Ruby Gem: Superuser ohne Einschränkungen
class Job
include AASM
aasm do
state :sleeping, :initial => true
state :running, :cleaning
event :run do
transitions :from => :sleeping, :to => :running
end
event :clean do
transitions :from => :running, :to => :cleaning
end
event :sleep do
transitions :from => [:running, :cleaning], :to => :sleeping
end
end
end
Ich habe 2 Arten von Benutzern auf meiner Web-Anwendung (normaler Benutzer und Superuser). Ich brauche einen Super-User-Typ, der in der Lage ist, das gewünschte Ereignis anzurufen. Wie #run bei einem Job mit state = cleaning aufrufen.
So, wie ich verstehe, was ich brauche, ist die des Übergangs zur Laufzeit von zu lösen. Wenn der Benutzer ein Superuser ist, würde die von alle Zustände sein, aber wenn der Benutzer kein Superuser ist, würde jede von verschiedenen Zuständen haben.
Gibt es einen sauberen Weg, das zu tun? Hast du eine Idee?