Как я могу получить доступ к коллекции состояний 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 ответ
Решение
Gem 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