[原创]Rails中用AASM实现工作流与多步骤向导
ruby有一个act as state machine的插件,可以实现工作流或者多步骤向导的功能。 state machine,是计算机科学里面一种模型,这个插件主要实现的是finite state machine,既有限状态自动机。 首先,AASM的安装: config.gem "rubyist-aasm", :source => "http://gems.github.com", :lib => ‘aasm’ 安装好之后需要在你的Model里面加入 include AASM 下面是一个简单的例子。来介绍AASM的使用。 加入我们有一个person的model,一个person可以处于三种状态,sleeping, working 还有eating. 初始状态是sleeping, 从sleeping只可以通过eat事件,转到eating,不可以转到working.(吃了饭才能工作)。 从working只可以通过eat事件,转到eating,不可以转到sleeping. (不能空肚子睡觉)。 然后从eating可以通过work事件转到working,或者sleep转到sleeping. 这些可以转化成下面的代码 class Person < ActiveRecord::Base include AASM aasm_column :current_state #定义那个字段来储存当前状态 aasm_initial_state :sleeping #定义初始状态 #定义三个不同的状态 aasm_state :sleeping aasm_state :eating [...]