Rails 5.2 - Как реализовать проверку доступности количества с помощью приложения бронирования корзины? - PullRequest
0 голосов
/ 21 декабря 2018

Я создаю приложение по аренде гольф-каров, где пользователи могут бронировать гольф-кары, и мне нужна помощь в проведении проверки количества и доступности, когда при бронировании корзины количество вычитается на 1 до даты окончания бронирования, и еслина данный момент количество 0 корзина считается недоступной и не подлежит бронированию.Я использую Rails 5.2,

У меня есть модель Devise User с добавленными именем и фамилией.Модель корзины с названием, описанием, количеством и ценами.И модель бронирования с датой начала, даты окончания, столбцами user_id и cart_id.Пользователь has_many бронирования, корзина has_many бронирования, и бронирование принадлежит_ пользователю.

Я пробовал это сам в течение нескольких дней, и здесь нет ответов, чтобы принять во внимание количественный аспект, который я ищу.

1 Ответ

0 голосов
/ 22 декабря 2018

Это хороший пример проблемы, которую можно решить либо путем вычисления значений, либо путем их хранения в базе данных.Я не думаю, что вы хотите хранить «количество» или «доступность» в структуре базы данных.

В соответствии с моими комментариями вы должны рассмотреть возможность сохранения вашей модели "Тележки" (которую я бы переименовал в "CartTypes") в памяти.Единственная причина, по которой я могу сохранить ее в таблице базы данных, заключается в том, что вам нужно часто обновлять характеристики - например, если корзины часто ломаются и требуют исправления, вам необходимо изменить общее количество доступных корзин дляданный тип.

В любом случае у вас будет атрибут «total_available» для вашей модели CartType.Я бы точно не хранил атрибут «количество».Вместо этого вам нужно просмотреть свои заказы, определить cart_type, start_date и end_date, подсчитать количество заказов для определенного cart_type на конкретную дату и вычесть это число из total_available, чтобы определить доступность.

Способ написания запроса для этого зависит от вашей схемы и отношений.Если вы можете быть более конкретным, то я могу предоставить конкретный запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...