在Rails上验证有限状态机(使用AASM)

Jav*_*ier 8 ruby rubygems ruby-on-rails fsm aasm

我正在使用Rubyist的AASM为AR对象构建一个4步向导.根据对象的状态,需要进行不同的验证.根据某个过渡的状态验证对象的最智能方法是什么?

Aug*_*aas 8

使用该:if选项,并将with_options它们捆绑在一起.

class Post < ActiveRecord::Base
  with_options :if => proc {|r| r.signup_step > 2 } do |o|
    o.validates_presence_of :title
    o.validates_presence_of :yeah
  end
end
Run Code Online (Sandbox Code Playgroud)

究竟你应该在if-proc中写什么,取决于你的实现.