aasm 交换机 订单状态交换功能

使用:

  1. gem 'aasm'

2.设置一个初始状态

class Customer < ActiveRecord::Base
    include AASM

    aasm  do
        state :published, initial => true
        state :checked_success
        state :checked_faild
    end
end

3.状态转换
初始状态为published(未审核),审核通过,则为checked,审核未通过,则为denied

  class Customer < ActiveRecord::Base
    include AASM

    aasm  do
        state :published, initial => true
        state :checked_success
        state :checked_faild
        state :deleted
        
        #正在审核
        event :on_checked do
              translation :from => :published, :to => :on_checking
         end

          #审核通过
          event :checked_succeed do 
              translation :from => :on_checking, :to  => :finished
          end
          
          #删除该记录
          event :deleted do
              translation :from => [:checked, :finished], :to => :sleeping
          end

    end
end

触发切换事件执行的条件 after_commit: :事件

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容