Я пытаюсь работать на конечной машине с AASM в Ruby. Это часть моего кода:Прежде чем обратный вызов не работает в 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", или нет. Он будет показывать или не показывать журналы puts из функции to_lowercase. Но я все еще не понимаю порядок. Я хочу просмотреть журнал «В нижнем регистре» до «Проверка орфографии». –
Дело в том, что вы не можете этого сделать, потому что блок, определяющий состояние, запускается при загрузке класса. Событие запускается в случае экземпляра. Это две разные вещи. Если вы хотите запустить это в определенном порядке, вы должны использовать их в методах и называть их, как вы называете метод 'to_lowercase' в вашем примере. – spickermann
Я бы также предложил нижестоящие имена ваших событий ... Только классы или модули должны быть капитализированы .. – Lichtamberg