2009-10-01 3 views
0

Можно ли получить доступ к коллекции состояний для данной модели:Как я могу получить доступ к коллекции состояний act_as_state_machine для конкретной модели рельсов?

класса Диалога включает 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 

конца

Я хотел бы быть в состоянии получить массив состояний, как :

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

Возможно ли это?

ответ

1

AASM камень имеет два метода класса, которые возвращают коллекцию состояний для данной модели:

aasm_states 
    aasm_states_for_select 

Например:

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