How do I implement aasm in Rails 3 for what I want it to do?
Posted
by
marcamillion
on Stack Overflow
See other posts from Stack Overflow
or by marcamillion
Published on 2011-02-04T21:01:59Z
Indexed on
2011/02/05
7:25 UTC
Read the original article
Hit count: 245
ruby-on-rails-3
|aasm
I am a Rails n00b and have been advised that in order for me to keep track of the status of my user's accounts (i.e. paid, unpaid (and therefore disabled), free trial, etc.) I should use an 'AASM' gem.
So I found one that seems to be the most popular: https://github.com/rubyist/aasm But the instructions are pretty vague.
I have a Users model and a Plan model. User's model manages everything you might expect (username, password, first name, etc.). Plan model manages the subscription plan that users should be assigned to (with the restrictions).
So I am trying to figure out how to use the AASM gem to do what I want to do, but no clue where to start.
Do I create a new model ? Then do I setup a relationship between my User model and the model for AASM ? How do I setup a relationship? As in, a user 'has_many' states ? That doesn't seem to make much sense to me.
Any guidance would be really appreciated.
Thanks.
Edit: If anyone else is confused by AASMs like myself, here is a nice explanation of their function in Rails by the fine folks at Envy Labs: http://blog.envylabs.com/2009/08/the-rails-state-machine/
Edit2: How does this look:
include AASM
aasm_column :current_state
aasm_state :paid
aasm_state :free_trial
aasm_state :disabled #this is for accounts that have exceed free trial and have not paid
#aasm_state :free_acct
aasm_event :pay do
transitions :to => :paid, :from => [:free_trial, :disabled]
transitions :to => :disabled, :from => [:free_trial, :paid]
end
© Stack Overflow or respective owner