💎 Ruby gem State Machine
👉 https://github.com/aasm/aasm
Зачем?
Вы работаете в серьезном контент-проекте, где публикации не могут быть опубликованы без одобрения главного редактора.
То есть, сперва у вас есть черновик статьи, потом он переходит в состояние ревью, и только после получения статуса аппрув статья может перейти в состояние опубликовано.
Нельзя отправить статью в архив, если она на ревью у редактора.
Нельзя опубликовать статью, без получения одобрения (аппрува) от редактора.
Гемы из серии "Машина Состояний" позволяют вам описать бизнес-процесс и разрешить или запретить переходы из одного состояния в другое.
А еще при переходе из состояния в состояние можно делать, например, отправку писем-уведомлений.
Очень полезный инструмент при работе в проектах со сложной бизнес-логикой.
Используется для:
🧭 управления жизненным циклом объектов
🛡 контроля переходов
📬 автоматизации действий при смене статуса
#инструментарий
Группа: @pro_ruby_on_rails_ru
Вопросы: @ilia_zykin
❤️ лайк 🔂 репост
Post #83
192

- 👍 9