0
RubyでAASMを使用した有限状態マシンで作業しようとしています。 これは私のコードの一部です:プットがログとして私が手AASM/Rubyでコールバックが機能しない前に
event :Orthography, :before => :to_lowercase do
puts "Check Orthography"
transitions :from => :Initialized, :to => :UniquenessChecked
end
event :Uniqueness do
puts "Check Uniqueness"
transitions :from => :UniquenessChecked, :to => :OrthographyChecked
end
...
def to_lowercase
puts "To lowercase test"
end
:
Check Orthography
Check Uniqueness
To lowercase test
しかし、私は、コールバックの前に使用しているので、私は、期待:
To lowercase test
Check Orthography
Check Uniqueness
どのようにすることができますイベントの前または後に何かする?
私は「term.Orthography」というイベントを発生させたときと違うのを見ます。これは、to_lowercase関数からputsログを表示するかどうかを示します。しかし、私はまだ注文を理解していない。私は "Check Orthography"の前に "小文字のテストに"ログを見たいと思っています。 –
ポイントは次のとおりです:クラスをロードするときに状態を定義するブロックが実行されるため、これを行うことはできません。このイベントはインスタンス上で発生します。それは2つの異なることです。これを特定の順序で実行したいときは、メソッドの中に入れて、あなたの例で 'to_lowercase'メソッドを呼び出すように呼び出す必要があります。 – spickermann
イベント名を小文字にすることをお勧めします。クラスまたはモジュールのみを大文字にする必要があります。 – Lichtamberg