Рельсовые модельные конструкции - PullRequest
1 голос
/ 06 октября 2011

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

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

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

У меня такой вопрос, будет ли когда-нибудь ситуация, когда вы сможете объединить все адреса электронной почты или категории в моделях пользователей и продуктов соответственно?Итак, в вашей пользовательской модели у вас будут email_one, email_two и т. Д.

Каковы плюсы и минусы разбиения его на разные модели?Спасибо.

1 Ответ

1 голос
/ 06 октября 2011

Если атрибут простой, то почти наверняка лучше хранить его в одной модели - вы даже можете сериализовать атрибут, например, для массива email_addresses. НО (большой, но) вы, возможно, захотите добавить гораздо больше информации к адресу электронной почты - какой из них является основным, когда он был последний раз профилирован, последнее письмо отправлено на ... и т. Д. И т. Д. если у вас есть отдельная модель адреса электронной почты. Так что, возможно, вопрос на самом деле «когда я должен использовать сериализованные атрибуты?». Мой собственный ответ будет «только если я уверен, что я храню что-то в этом поле, к которому я никогда не хочу добавлять дополнительные атрибуты». Обычно это означает, что оно является чем-то второстепенным для основного приложения, и о котором никто не заботится ...

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