aasm gemを使用した次のモデルを考えます。
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
Web アプリケーションには 2 種類のユーザー (通常のユーザーとスーパー ユーザー) がいます。必要なイベントを呼び出すことができるスーパー ユーザー タイプが必要です。state=cleaning のジョブで #run を呼び出すようなものです。
したがって、私が理解しているように、実行時にトランジションを解決する必要があります。ユーザーがスーパーユーザーの場合、fromはすべての状態になりますが、ユーザーがスーパー ユーザーでない場合は、それぞれの状態が異なります。
それを行うためのきれいな方法はありますか?あなたはなにか考えはありますか?