Можно ли получить все события из класса модели? Я хочу отфильтровать список по событиям.
Был похожий вопрос в списке рассылки обо всех переходах.
Я использую https://github.com/pluginaweek/state_machine.
Можно ли получить все события из класса модели? Я хочу отфильтровать список по событиям.
Был похожий вопрос в списке рассылки обо всех переходах.
Я использую https://github.com/pluginaweek/state_machine.
Прямо на странице github, на которую вы ссылаетесь, показаны методы API для:
vehicle.state_events # shows all the events possible from the current state
и
vehicle.state_paths.events # shows all the events for an object
Принятый ответ по какой-то причине занимает у меня несколько секунд, чтобы вычислить. Я думаю, это происходит, если у вас много состояний.
Что работает для меня:
Invoice.state_machines[:state].events.map(&:name)
В моем случае имя класса — invoice
, а state_machine — state
.
изменить 2014: в этом списке указаны состояния, а не события
Вот как я это сделал, чтобы перечислить только ключи
def self.membership_states
self.state_machines[:membership_status].states.map(&:name)
end
$ User.membership_states
> [:applied, ...