Fork me on GitHub!
Señor Developer!

RUG::B

Ruby User Group Berlin

Introduction to Statemachines

this Topic will be presented by Bodo Tasche 🔭

at January Meetup 2015, hosted by Tobias Pfeiffer

Rails has this nice little feature called Enums. The introduction example is something like this:

class Conversation < ActiveRecord::Base
    enum status: [ :active, :archived ] 
end

http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html

And I think this is dangerous. States should be dealed with in a state machine. Why you ask? Because state changes usually have conditions attached to them. Only archive if ... . If you want to model something like that with enums, you end up with a horrible version of a state machine.

So let's see how we would do this in a "more cleaner way" with state machines.

22 People like it