0

AASM gem で有限ステート マシン チェーンを作成しようとしています。文字列が一意かどうか (データベースに存在しないかどうか) を確認したい。

私が書いた:

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 を使用してパラメーターを渡すことは可能ですか? どうすればそれができるのか知りたいですか?

4

1 に答える 1

1

initializeブロック内で定義aasmしたので、そのブロックの外に移動するだけです:

require 'rubygems'
require 'aasm'

class Term
  include AASM

  def initialize(term)
    print term
  end

  aasm do
    # ...
  end
end
于 2016-10-29T15:07:24.470 に答える