超級用戶:AASM紅寶石寶石:不使用<strong>AASM</strong>寶石鑑於今後的機型限制
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種在我的Web應用用戶(普通用戶和超級用戶)。我需要超級用戶類型,可以打電話給他們想要的事件。就像在state = cleaning的工作上調用#run一樣。
所以,據我所知,我需要的是在運行時從解決轉換的。如果用戶是超級用戶,則從開始的將是所有狀態,但是如果用戶不是超級用戶,則每個來自不同的狀態。
有沒有乾淨的方法可以做到這一點?你有什麼想法?