Ассоциации между 4 моделями для сайта бронирования - PullRequest
0 голосов
/ 30 октября 2019

Я новичок в Rails, и в настоящее время у меня возникают проблемы при создании и представлении, как ассоциации будут работать над моим текущим проектом, который является своего рода веб-сайтом бронирования для поездок. В настоящее время у меня есть 4 модели: Пользователь, Путешественник, Поездка и Корзина.

Пользователи в основном для аутентификации (я использовал Devise). У них может быть много Путешественников, так же, как и на сайте бронирования, вы можете бронировать для многих людей под одной учетной записью.

Корзина говорит само за себя, в основном как пользователь, которого выиметь одну корзину и может добавить к ней поездки, а затем оформить заказ и купить поездки.

A Поездка не может иметь более 8 путешественников, например, 2 пользователя забронировали 4Каждый путешественник (4, вероятно, будет максимальным, который вы можете иметь на пользователя), и поездка заполнена, и никто больше не сможет ее забронировать.

Вы можете забронировать поездку только один раз за Путешественник , который позволяет не бронировать одно и то же Путешествие дважды для одного и того же человека.

У меня возникают проблемы с поиском и представлением подходящих ассоциаций, необходимых для этого проекта, особенно с моделью Путешественника. Вот что я придумала сейчас:

ПОЛЬЗОВАТЕЛЬ:

has_one: корзина

has_many: путешественники (макс. 4)

has_many: поездки через:: путешественники

ПУТЕШЕСТВЕННИК:

принадлежит_ пользователю:

принадлежит_ к: поездка

ПОЕЗДКА:

has_many: путешественники (макс. 8)

has_one_and_belongs_to_many: тележки

КОРЗИНА:

принадлежит_ к: user

has_one_and_belongs_to_many: trips

Это звучит правильно? Я также испытываю трудности с тестированием каждой ассоциации в консоли rails. Спасибо за вашу помощь, и если у вас когда-нибудь будут советы о том, как правильно проверить эти ассоциации и как их представить, не запутавшись, это было бы очень полезно! (Я сделал несколько набросков на бумаге, но иногда они еще больше запутывают меня ...)

1 Ответ

0 голосов
/ 30 октября 2019

связь между поездкой и тележкой должна быть такой:

Trip
has_many :carts
<Validation for uniqueness>
Cart
has_many :trips
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...