Сохранение нескольких объектов в одно поле таблицы

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

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

класс Экипаж ‹ ActiveRecord::Base

получатели класса ‹ HashWithIn DifferentAccess ; конец

сериализовать: получатели, получатели

конец


person Community    schedule 17.11.2008    source источник


Ответы (2)


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

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

person Stein G. Strindhaug    schedule 17.11.2008

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

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

person Michael Gee    schedule 10.02.2009