[英]state_machine vs aasm gems for app ruby on rails 3.2
我需要一個狀態機用於消息專用系統和訂單狀態系統。
你可以看到這兩個寶石:
https://github.com/pluginaweek/state_machine
https://github.com/rubyist/aasm
我正在使用mongoid和mongodb數據庫
什么寶石最適合這個功能?
更新:
查看最近的RailsCast: 狀態機之旅
上一個答案:
這兩個寶石都很好用,與Mongoid兼容,並且都是積極維護的。
我過去曾經使用過AASM,它已經存在了一段時間,但是state_machine gem有更多的功能和更多的選擇。 例如,檢查state_machine在基類上生成的方法(在它們的例子下面); 您可以定義更多細節,例如轉換回調,條件轉換; 你可以進行路徑分析,甚至還有一個GraphViz生成器可以生成狀態圖的漂亮圖片。
如果您只需要一台簡單的狀態機,就可以使用AASM。 如果您需要建模更多細節,如條件轉換或轉換回調,路徑分析,對狀態進行大量查詢,或需要嵌套狀態機,那么請轉到state_machine gem。
參考文獻:
AASM: https : //github.com/aasm/aasm
state_machine: https : //github.com/pluginaweek/state_machine
有關state_machine的其他信息:
http://www.pluginaweek.org/2009/03/08/state_machine-one-machine-to-rule-them-all/
http://rdoc.info:8080/github/pluginaweek/state_machine/master/StateMachine/Machine
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.