Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Validating a finite state machine (using AASM) on Rails

I'm using AASM by Rubyist to build a 4-step wizard for an AR object. According to the state of the object, there are different validations that need to be done. What is the smartest way to validate an object according to it's state on a certain transition?

like image 212
Javier Avatar asked Apr 06 '09 11:04

Javier


1 Answers

Use the :if option, and with_options to bunch 'em together.

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

What exactly you ought to write in the if-proc depends on your implementation, obviously.

like image 162
August Lilleaas Avatar answered Sep 21 '22 22:09

August Lilleaas