Я пытаюсь создать цепочку конечных автоматов с драгоценным камнем AASM. Я хочу проверить, уникальна ли строка (не существует в базе данных).Как передать параметр new/init в драгоценный камень AASM
я писал:
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>'
Можно ли передать параметр с помощью init в AASM? Я хотел бы знать, как я могу это сделать?
Благодаря работает, это также можно Acces 'term' значение в' AASM do'? Я попробовал 'self.term'. –
Я думаю, что 'initialize' теперь запущен как последний, потому что я сначала получаю печатные строки, помещаемые из событий AASM, а затем печать из' initialize'. Как я могу использовать 'term' в событиях? –
Извините, я был в состоянии помочь вам с вашим недействительным вложением, но у меня нет глубоких знаний в области AASM. Я предлагаю задать другой вопрос, если у вас есть другие проблемы с кодом, которые не связаны с этим вопросом. – spickermann