0
私はAASM gemで有限状態機械チェーンを作ろうとしています。文字列が一意であるかどうかをチェックしたい(データベースには存在しない)。AASM gemのnew/initにパラメータを渡すには
私が書いた:
require 'rubygems'
require 'aasm'
class Term
include AASM
aasm do
state :Beginning, :initial => true
state :CheckUniqueness
def initialize(term)
print term
end
event :UniquenessChecking do
print "Check uniqueness"
transitions :from => :Beginning, :to => :CheckUniqueness
end
end
end
term = Term.new("textstring")
term.CheckUniqueness
しかし、私はTerm.new("textstring")
を使用する場合、それは私がエラーを取得するので、私は、私が思うに、パラメータを渡すことができません。
`initialize': wrong number of arguments (1 for 0) (ArgumentError)
from try.rb:24:in `new'
from try.rb:24:in `<main>'
がすることが可能ですAASMでinitを使ってパラメータを渡す?私はそれをどうやってできるのか知りたいですか?
おかげで動作しますが、 '' AASM do'でterm'値をアクセスもすることも可能ですか?私は 'self.term'を試みました。 –
私は 'initialize'が最後に実行されたと思います。なぜなら私は最初にAASMイベントからのputsによって印刷された行を取得し、次に' initialize'からの印刷を取得するからです。どのようにしてイベントで 'term'を使うことができますか? –
申し訳ありませんが、無効なネスティングでお手伝いできましたが、AASMの内部に深い知識はありません。この質問に関連していないその他の問題がコードにある場合は、別の質問をすることをお勧めします。 – spickermann