0
我們在Rails應用中使用Geekq/workflow。這裏有一個例子:如何查找工作流中是否觸發了事件?
class Article
include Workflow
workflow do
state :new do
event :submit, :transitions_to => :awaiting_review
end
state :awaiting_review do
event :review, :transitions_to => :being_reviewed
end
state :being_reviewed do
event :accept, :transitions_to => :accepted
event :reject, :transitions_to => :rejected
end
state :accepted
state :rejected
end
end
這是很容易找到,如果一個狀態,例如,:awaiting_review
已經經歷了:
article.current_state < :awaiting_review
然而,我們沒有發現檢查的方法事件已被解僱。正在檢查一個事件是否被工作流的內置方法激發了一些可能的東西?或者如果沒有這個工作流程,其他任何可以?
什麼操作你想要在事件發生時執行?在轉換到另一個狀態之前,您可以使用'before_transition'來執行操作。希望這會有所幫助。 –
只需檢查一個事件是否爲一個實例觸發。沒有對事件進行操作。 – user938363
然後你可以使用before_transition。每當發生任何事件時,都會調用轉換,並在轉換之前記錄它。 –