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