AASM Gemででこういうのを定義してたとして
class Job
include AASM
aasm do
state :sleeping, :initial => true
state :running, :cleaning
event :run do
transitions :from => :sleeping, :to => :running
end
event :clean do
transitions :from => :running, :to => :cleaning
end
event :sleep do
transitions :from => [:running, :cleaning], :to => :sleeping
end
end
end
sleepイベントのfromを取得したいときは、こんな感じでいけます。
Job.aasm.events.detect { |event| event.name == :sleep }.transitions.map(&:from)