Сохранить несколько объектов в одном поле в таблице - PullRequest
0 голосов
/ 17 ноября 2008

Я хочу сохранить набор адресов электронной почты, собранных из текстового поля (разделенных запятыми), в одно поле таблицы. Я пытаюсь использовать serialize, но получаю ошибку SerializationTypeMismatch. Как я могу это сделать?

Это моя модель:

класс экипажа

Получатели класса

сериализация: получатели, получатели

конец

Ответы [ 2 ]

3 голосов
/ 17 ноября 2008

Я бы действительно рекомендовал вам проанализировать (например, разделить запятыми) список адресов электронной почты и поместить каждый ряд в отдельную таблицу (я полагаю, вы говорите о таблице базы данных?). Если вы хотите использовать адреса электронной почты для чего-то, лучше хранить их по отдельности, и, поскольку вы говорите о сериализации, я думаю, вы уже проанализировали электронные письма и пытаетесь сохранить массив или аналогичный элемент в одном поле в базе данных. , «Правильный» нормализованный способ работы с базой данных заключается в том, чтобы в вашей модели, в которой вы сейчас пытаетесь сохранить объект, добавить has_many :emails (или аналогичный) и создать новую таблицу электронной почты для каждого электронного письма.

Всегда следует иметь очень вескую причину для хранения данных типа списка в BLOB-объекте вместо использования соответствующей связанной таблицы.

1 голос
/ 10 февраля 2009

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

Если вам нужно сериализовать список, не будет ли это массивом? Можете ли вы объяснить выбор хеша?

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