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