Учитывая следующую модель с использованием AASM камень:AASM рубиновый камень: суперпользователя без ограничений
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
У меня есть 2 типа пользователей на моем веб-приложений (обычных пользователей, а также супер-пользователей). Мне нужен тип суперпользователей, который может вызвать событие, которое они хотят. Как вызов #run на работу с состоянием = очистка.
Итак, я понимаю, что мне нужно, чтобы разрешить перехода от во время выполнения. Если пользователь является суперпользователем, от будет состоять из всех состояний, но если пользователь не является суперпользователем, каждый из них будет иметь разные состояния.
Есть ли какой-либо чистый способ сделать это? У тебя есть идеи?