2009-10-01 6 views
0

Est-il possible d'accéder à la collection d'états pour le modèle donné:Comment puis-je accéder à une collection d'états acts_as_state_machine pour un modèle de rails particulier?

classe Conversation comprennent AASM

aasm_initial_state :unread 

aasm_state :unread 
aasm_state :read 
aasm_state :closed 

aasm_event :view do 
    transitions :to => :read, :from => [:unread] 
end 

aasm_event :close do 
    transitions :to => :closed, :from => [:read, :unread] 
end 

fin

Je voudrais être en mesure d'obtenir un tableau d'états comme :

['unread', 'read', 'closed'] 

Est-ce possible?

Répondre

1

Le joyau AASM dispose de deux méthodes de classe qui retournent une collection d'états pour un modèle donné:

aasm_states 
    aasm_states_for_select 

Par exemple:

class Note < ActiveRecord::Base 
    aasm_initial_state :unread 

    aasm_state :unread 
    aasm_state :read 
    aasm_state :closed 

    aasm_event :view do 
    transitions :to => :read, :from => [:unread] 
    end 

    aasm_event :close do 
    transitions :to => :closed, :from => [:read, :unread] 
    end 
end 

> Note.aasm_states 
> Note.aasm_states_for_select 
Questions connexes