2010-02-24 13 views
6

मेरे पास एक मॉडल है जो एक पंजीकरण प्रक्रिया का प्रतिनिधित्व करता है, जिसे कई प्रक्रियाओं (पृष्ठभूमि जांच, साक्षात्कार, सूचना संग्रह ...) की प्रगति को ट्रैक करने की आवश्यकता होती है। प्रत्येक को एक राज्य मशीन द्वारा प्रतिनिधित्व किया जा सकता है, और फिर पंजीकरण की समग्र स्थिति दूसरों की स्थिति पर निर्भर हो सकती है।एक मॉडल में एकाधिक राज्य मशीनें?

क्या यह हल हो सकता है? कोई अन्य विचार या डिजाइन विचार?

उत्तर

-2

आप एक मॉडल यह शायद बड़ा करने के लिए हो रही है में एक से अधिक statemachines की जरूरत है और यह मॉडल विभाजित करने के लिए समय है। तो आपके उदाहरण में आपको पृष्ठभूमि जांच, साक्षात्कार, सूचना संग्रह के लिए मॉडल जोड़ना चाहिए ...

+0

इन सभी चीजों के लिए कई मॉडल हैं, और यह समग्र प्रक्रिया है जिसे सैट मॉडलिंग – DGM

+2

की आवश्यकता होती है, कई राज्यमाचिनों की आवश्यकता जरूरी नहीं है कि यह अपघटन की आवश्यकता का प्रतिनिधित्व करे। वास्तव में, यह पहले से ही लागू होने वाले अच्छे अपघटन से हो सकता है। उदाहरण के लिए ओपी के उपयोगकेस में। यह ठीक है अगर किसी के पास के मॉडल के पास मॉडल की अपनी मशीन-मशीन है, लेकिन आपको अभी भी संग्रह की स्थिति के लिए माता-पिता पर एक राज्य-मशीन की आवश्यकता होगी, जब तक कि आप केवल बहुत कुछ का उपयोग नहीं करना चाहते सशर्त संक्रमणों का लेखा परीक्षा करना मुश्किल है। –

4

इस प्लगइन है, जो आप भी अन्य राज्य मशीनों से विरासत का उपयोग कर सकते प्रयास करें:

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

4

चूंकि यह प्रश्न तब आता है जब आप एक मॉडल में एकाधिक राज्य मशीनों को Google करते हैं, तो इसका जवाब अच्छा होगा, हालांकि वहां पहले से ही एक जवाब है। कर प्रयास करें:

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 

यह दो राज्य दो स्तंभों के आधार पर मशीनों का निर्माण करेगा, खोज और सिंक।

संबंधित मुद्दे