Как я могу получить доступ к коллекции состояний acts_as_state_machine для конкретной модели rails? - PullRequest
0 голосов
/ 02 октября 2009

Возможно ли получить доступ к коллекции состояний для данной модели:

класс Разговор включает 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 Ответ

1 голос
/ 02 октября 2009

В геме 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
...