なしのスーパーユーザー: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
私は自分のWebアプリケーション上のユーザ(一般ユーザ、およびスーパーユーザ)の2種類があります。私は彼らが望むイベントを呼び出すことができるbeeing、スーパーユーザーのタイプが必要です。 state = cleaningのジョブで#runを呼び出すのと同じです。
私が必要とするのは、実行時に遷移のをから解決することです。ユーザーがスーパーユーザーの場合、からまでがすべての状態になりますが、ユーザーがスーパーユーザーでない場合は、それぞれが異なる状態になります。
これを行うためのクリーンな方法はありますか?あなたはなにか考えはありますか? current_user
に基づくモデル層で意思決定を行う