2016-08-01 20 views
7

Herhangi bir durumda bir duruma girmeden önce kontrol edilen bir muhafazayı (örn. has_legs?) tanımlamanın bir yolu var mı (ör. running)?AASM'deki durum seviyesinde bir bekçi nasıl ayarlanır?

Olası tüm geri çağrıların listesinde olaylar ve geçişler için korumalar vardır, ancak olaylar için değildir.

Model için koşullu bir doğrulama yapmayı denedim. Olay yürütmesinde çalıştı, ancak aasm yöntemleri için değil (ör. may_run?).

+0

Kodunuzu gösterebilir misiniz? –

cevap

0

Yapı içinde bir yöntem bilmiyorum. Varsayılan seçenekleri içeren bir Hash ile bir geçici çözüm kullanırdım.

DEFAULT_EVENT_OPTS = { guard: ... } 
DEFAULT_TRANSITION_OPTS = { ... } 

event :clean, DEFAULT_EVENT_OPTS.merge({ ... }) do 
    transitions DEFAULT_TRANSITION_OPTS.merge({:from => :running, :to => :cleaning, :guard => :cleaning_needed?}) 
end 
İlgili konular