Атрибут с несколькими значениями в rails: логическое значение, строка и сериализация или hbtm? - PullRequest
1 голос
/ 07 декабря 2010

Скажем, у вас есть модель Book, которая может принадлежать нескольким категориям. Категории предопределены, но мы можем позволить пользователю добавлять свои собственные, даже если в большинстве случаев достаточно стандартных.

Какой, по вашему мнению, лучший способ справиться с этим?

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

Спасибо за ваше время!

Спасибо

1 Ответ

2 голосов
/ 07 декабря 2010

Возможно, вы захотите использовать HABTM. Это не излишне, если вы когда-нибудь захотите собрать какую-либо информацию о различных категориях; дата создания, например. Вы также получите возможность легко получать все книги для данной категории, не беспокоясь о границах внутри модели книги.

Кроме того, в будущем вы можете захотеть добавлять другие объекты в категории. Там не так много накладных расходов, и его довольно просто настроить, так что стоит пойти, ИМХО.

Для получения справки по внедрению HABTM с флажками установите флажки HABTM railscast. Для обсуждения различий между HABTM и has_many :through я действительно рекомендую Два рейса "многие ко многим" .

...