Полиморфные модели в Ruby on Rails? - PullRequest
0 голосов
/ 19 сентября 2008

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

Для этого обсуждения давайте назовем их «1 футболка» и «коробка футболок». Для одной футболки мне нужно хранить обычные атрибуты - цену, артикул, размер, цвет, описание и т. Д. Для коробки с футболками мне нужно иметь цену, артикул, описание и список футболок. рубашки, которые включены.

Итак, сейчас я представляю это с моделями Shirt и ShirtCollection. Я вижу, что это вызывает трудности в будущем, когда мне нужно отчитаться и управлять заказами и убедиться, что SKU уникальны.

Так, каков наилучший способ представить это?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2008

Вы можете иметь таблицу Tshirt и затем самостоятельно ссылаться на нее с помощью has_many: through Ассоциации.

Футболка - id, sku, цена, размер, цвет, описание, is_box

TshirtBox - parent_tshirt (идентификатор, который ссылается на футболку), child_tshirt (идентификатор, который ссылается на футболку)

Проверьте эту ссылку для получения дополнительной информации о собственной ссылке has_many: через http://www.aldenta.com/2006/11/10/has_many-through-self-referential-example/

1 голос
/ 19 сентября 2008

У меня были бы следующие модели

тенниска
TshirtBox has_many TshirtItems
TshirtBoxItems (Это в основном таблица соединения с идентификатором tshirt_box_id и tshirt_id) принадлежит TshirtBox

TshirtBoxItems - это способ связать футболку с коробкой и потенциально другими вещами в будущем.

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