@Jowan

Как грамотно сделать статус заказа?

Предположим, существует модель Order.
Как грамотно организовать статус заказа: добавить boolean поле к этой модели (Обработан/Не обработан). Или же создавать отдельную ассоциацию, например, has_one :status и работать с ней как с одтельным маленьким ресурсом, т.е огранизовать create/destroy экшны в отдельном контроллере ?
  • Вопрос задан
  • 359 просмотров
Решения вопроса 1
Jeiwan
@Jeiwan
Если статусов будет только два (Обработан/Не обработан), то достаточно булеана.
Если статусов будет много, то лучше прикрутить state-machine (AASM/Workflow). В этом случае можно будет сделать, чтобы на в разных статусах были доступны разные действия с заказом.
Если статусов будет много, но стейт-машина избыточна (или лень возиться с ней), то можно воспользоваться стандартной рельсовой фичей enum (edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html).

Создавать отдельную модель как-то совсем избыточно. Только если там ещё какой-то функционал будет, но сходу придумать какой-то пример не могу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы