2010-02-24 35 views
6

Tôi có một mô hình đại diện cho quy trình đăng ký, cần theo dõi tiến trình của một số quy trình (kiểm tra lý lịch, phỏng vấn, thu thập thông tin ...). Mỗi người có thể được đại diện bởi một máy nhà nước, và sau đó trạng thái tổng thể của việc đăng ký có thể phụ thuộc vào trạng thái của những người khác.Nhiều máy trạng thái trong một mô hình?

Co thắt có thể xử lý việc này không? Bất kỳ ý tưởng khác hoặc cân nhắc thiết kế nào?

Trả lời

-2

Nếu bạn cần nhiều statemachines trong một mô hình nó có thể nhận được để lớn và đó là thời gian để phân chia các mô hình. Vì vậy, trong ví dụ của bạn, bạn nên thêm mô hình để kiểm tra lý lịch, phỏng vấn, thu thập thông tin ...

+0

có nhiều mô hình cho tất cả những điều này, và đó là quá trình tổng thể cần mô hình sate – DGM

+2

một nhu cầu cho nhiều statemachines không nhất thiết đại diện cho một nhu cầu phân hủy ở tất cả. Trong thực tế, nó có thể là kết quả của sự phân hủy tốt đã được áp dụng. Ví dụ trong usecase của OP. Sẽ ổn nếu mô hình ở phần cuối của một-nhiều có máy trạng thái riêng của nó, nhưng bạn vẫn sẽ cần một máy trạng thái trên bố mẹ cho trạng thái của bộ sưu tập, trừ khi bạn định chỉ sử dụng rất nhiều khó kiểm toán chuyển tiếp có điều kiện. –

4

Vì câu hỏi này xuất hiện khi bạn google nhiều máy trạng thái trong một mô hình, sẽ tốt hơn nếu bạn có câu trả lời đã là một câu trả lời. Vui lòng thử làm:

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 

Điều này sẽ tạo hai máy trạng thái dựa trên hai cột, tìm kiếm và đồng bộ hóa.

Các vấn đề liên quan