超级用户: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一样。
所以,据我所知,我需要的是在运行时从解决转换的。如果用户是超级用户,则从开始的将是所有状态,但是如果用户不是超级用户,则每个来自不同的状态。
有没有干净的方法可以做到这一点?你有什么想法?