2010-02-24 16 views
6

Birkaç sürecin ilerleyişini (arka plan kontrolleri, röportajlar, bilgi toplama ...) takip etmesi gereken bir kayıt sürecini temsil eden bir modelim var. Her biri bir devlet makinesi tarafından temsil edilebilir ve daha sonra kayıtların genel durumu diğerlerinin durumuna bağlı olabilir.Tek bir modelde birden fazla durum makineleri?

Bu işlemi halledebilir mi? Başka fikir veya tasarım konusu var mı? Eğer muhtemelen büyük için gidiyor bir modelde birden statemachines gerekiyorsa

http://api.pluginaweek.org/state_machine/

cevap

-2

ve modeli bölmek için zamanı:

+0

bütün bu şeyler için birden fazla model vardır ve bu, – DGM

+2

modelinin gereksinim duyduğu genel işlemin, birden fazla statemachines'e gereksinim duyması zorunlu olarak dekompozisyon gereksinimini temsil etmeyebilir. Aslında, zaten uygulanmış olan iyi bir ayrışmadan kaynaklanabilir. Örneğin OP'nin usecase. Eğer bir çok kişinin sonundaki modelin kendi devlet makinesine sahip olması iyi bir şeydir, ancak sadece bir çok şeyi kullanmayı düşünmüyorsanız, hala koleksiyonun durumu için ana makineye ihtiyaç duyacaksınız. Koşullu geçişleri denetlemek zor. –

4

hatta diğer devlet makinelerinden miras kullanabileceğiniz bu eklenti, deneyin. Örneğinizde, arka plan kontrolleri, röportajlar, bilgi toplama için modeller eklemelisiniz ...

4

Bu soru, bir modelde birden çok eyalet makinesini kullandığınızda ortaya çıktığı için, bir cevaba sahip olmak iyi olurdu. zaten bir cevaptır. yapıyor deneyin:

class Example < ActiveRecord::Base 
include AASM 

    aasm :search, :column => :search do 
    state :initialised, :initial => true 
    ... 
    end 
    aasm :sync, :column => :sync do 
    state :unsynced, :initial => true 
    ... 
    end 
end 

Bu iki sütun dayalı iki devlet makineleri yaratacak, arama ve senkronizasyon.